diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index 82564664fd4..40a8b9bb066 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -140,10 +140,16 @@
//Wrapper procs that handle sanity and user feedback
/atom/movable/proc/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
- if(!in_range(user, src) || !isturf(user.loc) || user.incapacitated() || M.anchored)
+ if(!Adjacent(user) || !Adjacent(M) || !isturf(user.loc) || user.incapacitated() || M.anchored)
return FALSE
add_fingerprint(user)
+ if (M != user)
+ M.visible_message("[user] starts buckling [M] to [src]!",\
+ "[user] starts buckling you to [src]!",\
+ "You hear metal clanking.")
+ if(!do_after(user, 3 SECONDS, TRUE, M))
+ return FALSE
. = buckle_mob(M, check_loc = check_loc)
if(.)
if(M == user)
@@ -152,8 +158,7 @@
"You hear metal clanking.")
else
M.visible_message("[user] buckles [M] to [src]!",\
- "[user] buckles you to [src]!",\
- "You hear metal clanking.")
+ "[user] buckles you to [src]!")
/atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user)
var/mob/living/M = unbuckle_mob(buckled_mob)
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index d9d9c44915c..827a1d2901c 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -249,6 +249,9 @@
usr.put_in_hands(C)
qdel(src)
+/obj/structure/chair/user_buckle_mob(mob/living/M, force, check_loc = FALSE)
+ return ..()
+
/obj/structure/chair/stool/bar
name = "bar stool"
desc = "It has some unsavory stains on it..."