diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 78ad49d907..27330786b1 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -387,11 +387,12 @@
playsound(src, 'sound/effects/sink_long.ogg', 75, 1)
busy = 1
- sleep(40)
+ if(!do_after(user, 40, src))
+ busy = 0
+ to_chat(usr, "You stop washing your hands.")
+ return
busy = 0
- if(!Adjacent(user)) return //Person has moved away from the sink
-
user.clean_blood()
if(ishuman(user))
user:update_inv_gloves()
@@ -443,13 +444,12 @@
to_chat(usr, "You start washing \the [I].")
busy = 1
- sleep(40)
+ if(!do_after(user, 40, src))
+ busy = 0
+ to_chat(usr, "You stop washing \the [I].")
+ return
busy = 0
- if(user.loc != location) return //User has moved
- if(!I) return //Item's been destroyed while washing
- if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands
-
O.clean_blood()
user.visible_message( \
"[user] washes \a [I] using \the [src].", \