diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm
index 460a13f7b7a..23af6093efa 100644
--- a/code/datums/recipe.dm
+++ b/code/datums/recipe.dm
@@ -76,7 +76,7 @@
checklist = items.Copy() // You should really trust Copy
if(istype(container, /obj/machinery))
var/obj/machinery/machine = container
- for(var/obj/O in (machine.contents - machine.component_parts))
+ for(var/obj/O in ((machine.contents - machine.component_parts) - machine.circuit))
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown))
continue // Fruit is handled in check_fruit().
var/found = 0
@@ -110,7 +110,7 @@
var/obj/result_obj = new result(container)
if(istype(container, /obj/machinery))
var/obj/machinery/machine = container
- for (var/obj/O in ((machine.contents-result_obj)-machine.component_parts))
+ for (var/obj/O in ((machine.contents-result_obj - machine.component_parts) - machine.circuit))
O.reagents.trans_to_obj(result_obj, O.reagents.total_volume)
qdel(O)
else
@@ -128,7 +128,7 @@
var/obj/result_obj = new result(container)
if(istype(container, /obj/machinery))
var/obj/machinery/machine = container
- for (var/obj/O in ((machine.contents-result_obj)-machine.component_parts))
+ for (var/obj/O in ((machine.contents-result_obj - machine.component_parts) - machine.circuit))
if (O.reagents)
O.reagents.del_reagent("nutriment")
O.reagents.update_total()
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index 100135d389a..7f82a34f1c1 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -116,7 +116,7 @@
user << "It's dirty!"
return 1
else if(is_type_in_list(O,acceptable_items))
- if (contents.len>=(max_n_of_items + component_parts.len)) //Adds component_parts to the maximum number of items.
+ if (contents.len>=(max_n_of_items + component_parts.len + 1)) //Adds component_parts to the maximum number of items. The 1 is from the circuit
user << "This [src] is full of ingredients, you cannot put more."
return 1
if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it
@@ -179,7 +179,7 @@
var/list/items_counts = new
var/list/items_measures = new
var/list/items_measures_p = new
- for (var/obj/O in (contents-component_parts))
+ for (var/obj/O in ((contents - component_parts) - circuit))
var/display_name = O.name
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
items_measures[display_name] = "egg"
@@ -239,7 +239,7 @@
if(stat & (NOPOWER|BROKEN))
return
start()
- if (reagents.total_volume==0 && !(locate(/obj) in (contents-component_parts))) //dry run
+ if (reagents.total_volume==0 && !(locate(/obj) in ((contents - component_parts) - circuit))) //dry run
if (!wzhzhzh(10))
abort()
return
@@ -301,7 +301,7 @@
return 1
/obj/machinery/microwave/proc/has_extra_item()
- for (var/obj/O in (contents-component_parts))
+ for (var/obj/O in ((contents - component_parts) - circuit))
if ( \
!istype(O,/obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) \
@@ -362,7 +362,7 @@
/obj/machinery/microwave/proc/fail()
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
var/amount = 0
- for (var/obj/O in (contents-ffuu)-component_parts)
+ for (var/obj/O in (((contents - ffuu) - component_parts) - circuit))
amount++
if (O.reagents)
var/id = O.reagents.get_master_reagent_id()