diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index 02d85234ed..41ad047cc6 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -5,6 +5,7 @@
var/buckle_lying = -1 //bed-like behavior, forces mob.lying = buckle_lying if != -1
var/buckle_require_restraints = 0 //require people to be handcuffed before being able to buckle. eg: pipes
var/mob/living/buckled_mob = null
+ var/has_buckled
/obj/attack_hand(mob/living/user)
. = ..()
@@ -29,12 +30,17 @@
/obj/proc/buckle_mob(mob/living/M)
if(!can_buckle || !istype(M) || (M.loc != loc) || M.buckled || M.pinned.len || (buckle_require_restraints && !M.restrained()))
return 0
+ if(has_buckled) //Handles trying to buckle yourself to the chair when someone is on it
+ M << "\The [src] already has someone buckled to it."
+ return 0
M.buckled = src
M.facing_dir = null
M.set_dir(buckle_dir ? buckle_dir : dir)
M.update_canmove()
buckled_mob = M
+ has_buckled = 1
+
post_buckle_mob(M)
return 1
@@ -45,6 +51,7 @@
buckled_mob.anchored = initial(buckled_mob.anchored)
buckled_mob.update_canmove()
buckled_mob = null
+ has_buckled = 0
post_buckle_mob(.)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 511709200c..49ad275333 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -129,6 +129,9 @@
else if(istype(W, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = W
var/mob/living/affecting = G.affecting
+ if(has_buckled) //Handles trying to buckle someone else to a chair when someone else is on it
+ user << "\The [src] already has someone buckled to it."
+ return
user.visible_message("[user] attempts to buckle [affecting] into \the [src]!")
if(do_after(user, 20))
affecting.loc = loc