diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index c8c88b19855..df83e39c10a 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -211,6 +211,7 @@
throwforce = 10
throw_range = 3
hitsound = 'sound/items/trayhit1.ogg'
+ hit_reaction_chance = 50
var/origin_type = /obj/structure/chair
@@ -221,16 +222,21 @@
icon_state = "[origin.icon_state]_toppled"
item_state = origin.hold_icon
origin_type = origin.type
- hit_reaction_chance = 50
-/obj/item/chair/attack_hand(mob/user)
- if(user.a_intent == "help")
- user.visible_message("[user] rights \the [src.name].", "You right \the [src.name].")
- plant()
- else
- ..()
-/obj/item/chair/proc/plant()
+/obj/item/chair/attack_self(mob/user)
+ plant(user)
+
+/obj/item/chair/proc/plant(mob/user)
+ for(var/obj/A in get_turf(loc))
+ if(istype(A,/obj/structure/chair))
+ user << "There is already a chair here."
+ return
+ if(A.density)
+ user << "There is already something here."
+ return
+
+ user.visible_message("[user] rights \the [src.name].", "You right \the [name].")
var/obj/structure/chair/C = new origin_type(get_turf(loc))
C.dir = dir
qdel(src)