diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 01532fe16d2..7829480846e 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -237,10 +237,6 @@
if(isrobot(user))
return
- if(beaker)
- to_chat(user, "Something is already loaded into the machine.")
- return
-
if((istype(I, /obj/item/reagent_containers/glass) || istype(I, /obj/item/reagent_containers/food/drinks)) && user.a_intent != INTENT_HARM)
if(panel_open)
to_chat(user, "Close the maintenance panel first.")
@@ -248,12 +244,18 @@
if(!user.drop_item())
to_chat(user, "[I] is stuck to you!")
return
- beaker = I
I.forceMove(src)
- to_chat(user, "You set [I] on the machine.")
+ if(beaker)
+ user.put_in_hands(beaker)
+ to_chat(user, "You swap [I] with [beaker].")
+ else
+ to_chat(user, "You set [I] on the machine.")
+ beaker = I
+
SStgui.update_uis(src) // update all UIs attached to src
update_icon(UPDATE_ICON_STATE)
return
+
return ..()
/obj/machinery/chem_dispenser/crowbar_act(mob/user, obj/item/I)
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 561c2c54a67..487a7b56a6a 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -98,15 +98,16 @@
return TRUE
if((istype(I, /obj/item/reagent_containers/glass) || istype(I, /obj/item/reagent_containers/food/drinks/drinkingglass)) && user.a_intent != INTENT_HARM)
- if(beaker)
- to_chat(user, "A beaker is already loaded into the machine.")
- return
if(!user.drop_item())
to_chat(user, "[I] is stuck to you!")
return
- beaker = I
I.forceMove(src)
- to_chat(user, "You add the beaker to the machine!")
+ if(beaker)
+ user.put_in_hands(beaker)
+ to_chat(user, "You swap [I] with [beaker] inside.")
+ else
+ to_chat(user, "You add [I] to the machine.")
+ beaker = I
SStgui.update_uis(src)
update_icon()