diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm
index 268e5d9e663..55f499d09b1 100644
--- a/code/game/objects/items/weapons/mop.dm
+++ b/code/game/objects/items/weapons/mop.dm
@@ -27,7 +27,9 @@
/obj/item/mop/proc/wet_mop(obj/o, mob/user)
if(o.reagents.total_volume < 1)
to_chat(user, "[o] is out of water!")
- if(!istype(o, /obj/item/reagent_containers/glass/bucket))
+ if(istype(o, /obj/structure/mopbucket))
+ mopbucket_insert(user, o)
+ if(istype(o, /obj/structure/janitorialcart))
janicart_insert(user, o)
return
@@ -119,3 +121,6 @@
/obj/item/mop/advanced/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
return
+
+/obj/item/mop/advanced/cyborg/mopbucket_insert(mob/user, obj/structure/mopbucket/J)
+ return
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
index 326d8380dd5..36b8dd98691 100644
--- a/code/game/objects/structures/mop_bucket.dm
+++ b/code/game/objects/structures/mop_bucket.dm
@@ -34,7 +34,7 @@
M.wet_mop(src, user)
return
if(!stored_mop)
- M.janicart_insert(user, src)
+ M.mopbucket_insert(user, src)
return
to_chat(user, "Theres already a mop in the mopbucket.")
return
@@ -46,6 +46,10 @@
to_chat(user, "You put [I] into [src].")
return
+/obj/item/mop/proc/mopbucket_insert(mob/user, obj/structure/mopbucket/J)
+ J.stored_mop = src
+ J.put_in_cart(src, user)
+
/obj/structure/mopbucket/on_reagent_change()
update_icon(UPDATE_OVERLAYS)