diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index d2d2c619882..5dbc7ee74ce 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -517,7 +517,19 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
if(S.burn_dam)
if(S.burn_dam < ROBOLIMB_SELF_REPAIR_CAP)
- S.heal_damage(0,15,0,1)
+ if(S.burn_dam >= 15 && amount >= 5)
+ S.heal_damage(0, 15, 0, 1)
+ use(5)
+ else
+ var/cable_to_use = 0
+ var/dam_left = S.burn_dam
+ while(dam_left > 0)
+ cable_to_use += 1
+ dam_left -= 3
+ if(cable_to_use >= amount) //make sure we don't use more cable than we have
+ cable_to_use = amount //in case we have a lot of damage but not a lot of cable
+ use(cable_to_use)
+ S.heal_damage(0, (cable_to_use * 3), 0, 1)
user.visible_message("\The [user] repairs some burn damage on \the [M]'s [S.name] with \the [src].")
else if(S.open != 2)
to_chat(user, "The damage is far too severe to patch over externally.")