diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 39fb502d10b..133a3d15b39 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -3,6 +3,7 @@
desc = "A sturdy metal ladder."
icon = 'icons/obj/structures.dmi'
icon_state = "ladder11"
+ anchored = 1
var/id = null
var/height = 0 //the 'height' of the ladder. higher numbers are considered physically higher
var/obj/structure/ladder/down = null //the ladder below this one
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 3fcfc0ef4bf..efef25723a5 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -63,8 +63,11 @@
return
var/obj/item/weapon/reagent_containers/RG = I
if(RG.is_open_container())
- RG.reagents.add_reagent("toiletwater", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
- to_chat(user, "You fill [RG] from [src]. Gross.")
+ if(RG.reagents.total_volume >= RG.volume)
+ to_chat(user, "\The [RG] is full.")
+ else
+ RG.reagents.add_reagent("toiletwater", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
+ to_chat(user, "You fill [RG] from [src]. Gross.")
return
if(istype(I, /obj/item/weapon/grab))
diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm
index 2bfe10a1f35..11e51987285 100644
--- a/code/modules/mob/death.dm
+++ b/code/modules/mob/death.dm
@@ -76,6 +76,10 @@
/mob/proc/death(gibbed)
+ //Makes it so gib/dust/melt all unbuckle their victims from anything they may be buckled to to avoid breaking beds/chairs/etc
+ if(gibbed && buckled)
+ buckled.unbuckle_mob()
+
//Quick fix for corpses kept propped up in chairs. ~Z
drop_r_hand()
drop_l_hand()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index b82cf48c22e..d316044a29e 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -12,6 +12,8 @@
for(var/mob/dead/observer/M in following_mobs)
M.following = null
following_mobs = null
+ if(buckled)
+ buckled.unbuckle_mob()
return ..()
/mob/New()