diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm
index 21d6a43a12d..c405ce7c086 100644
--- a/code/modules/mob/living/carbon/human/human_organs.dm
+++ b/code/modules/mob/living/carbon/human/human_organs.dm
@@ -42,7 +42,7 @@
// Buckled to a bed/chair. Stance damage is forced to 0 since they're sitting on something solid
// Not standing, so no need to care about stance
- if(istype(buckled, /obj/structure/chair) || !isturf(loc))
+ if(istype(buckled, /obj/structure/chair) || istype(buckled, /obj/vehicle/bike) || !isturf(loc))
return
for(var/limb_tag in list("l_leg","r_leg","l_foot","r_foot"))
diff --git a/code/modules/vehicle/bicycle.dm b/code/modules/vehicle/bicycle.dm
index b08239f06b0..151c34f5e0e 100644
--- a/code/modules/vehicle/bicycle.dm
+++ b/code/modules/vehicle/bicycle.dm
@@ -10,12 +10,17 @@
bicycle_overlay = mutable_appearance(icon, "bicycle_overlay", ABOVE_MOB_LAYER)
/obj/vehicle/bike/relaymove(mob/user, direction)
- . = ..()
if(!ishuman(user))
return
var/mob/living/carbon/human/driver = user
var/obj/item/organ/external/l_hand = driver.get_organ("l_hand")
var/obj/item/organ/external/r_hand = driver.get_organ("r_hand")
+ var/obj/item/organ/external/l_leg = driver.get_organ("l_leg")
+ var/obj/item/organ/external/r_leg = driver.get_organ("r_leg")
+ if(!l_hand && !r_hand && !l_leg && !r_leg) // if you don't have limbs then fall off the bike
+ unbuckle_mob(driver)
+ driver.emote("collapse")
+ return
if(!l_hand && !r_hand)
vehicle_move_delay += 0.5 // I can ride my bike with no handlebars... (but it's slower)
for(var/organ_name in list("l_leg", "r_leg", "l_foot", "r_foot"))
@@ -26,6 +31,7 @@
vehicle_move_delay += 0.5
else if(E.status & ORGAN_BROKEN)
vehicle_move_delay += 1.5
+ return ..()
/obj/vehicle/bike/post_buckle_mob(mob/living/M)
. = ..()
diff --git a/code/modules/vehicle/janivehicle.dm b/code/modules/vehicle/janivehicle.dm
index e97ae0bf88a..f6caae7887d 100644
--- a/code/modules/vehicle/janivehicle.dm
+++ b/code/modules/vehicle/janivehicle.dm
@@ -60,6 +60,15 @@
J.vehicle_move_delay -= J.buffer_delay
to_chat(usr, "The floor buffer is now [J.floorbuffer ? "active" : "deactivated"].")
+/obj/vehicle/janicart/user_buckle_mob(mob/living/M, mob/user)
+ var/mob/living/carbon/human/driver = M
+ var/obj/item/organ/external/l_leg = driver.get_organ("l_leg")
+ var/obj/item/organ/external/r_leg = driver.get_organ("r_leg")
+ if(!l_leg && !r_leg)
+ to_chat(user, "[src] requires legs to ride!")
+ return
+ return ..()
+
/obj/vehicle/janicart/post_buckle_mob(mob/living/M)
. = ..()
if(!buffer_installed)