diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 4d58c90a095..6d1b884177d 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -59,30 +59,31 @@
/obj/structure/proc/do_climb(mob/living/user)
if(!can_touch(user) || !climbable)
- return
+ return FALSE
var/blocking_object = density_check()
if(blocking_object)
to_chat(user, "You cannot climb [src], as it is blocked by \a [blocking_object]!")
- return
+ return FALSE
var/turf/T = src.loc
- if(!T || !istype(T)) return
+ if(!T || !istype(T)) return FALSE
usr.visible_message("[user] starts climbing onto \the [src]!")
climber = user
if(!do_after(user, 50, target = src))
climber = null
- return
+ return FALSE
if(!can_touch(user) || !climbable)
climber = null
- return
+ return FALSE
usr.loc = get_turf(src)
if(get_turf(user) == get_turf(src))
usr.visible_message("[user] climbs onto \the [src]!")
climber = null
+ return TRUE
/obj/structure/proc/structure_shaken()
diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm
index 2f61eb51fed..21216996f6a 100644
--- a/code/game/objects/structures/railings.dm
+++ b/code/game/objects/structures/railings.dm
@@ -106,9 +106,7 @@
/obj/structure/railing/do_climb(mob/living/user)
. = ..()
- if(!climbable)
- return FALSE
- if(get_turf(user) == get_turf(src))
+ if(.)
currently_climbed = TRUE
return TRUE