diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/devices/PDA/cart.dm
index 77aac0573ee..21fbe6646d2 100644
--- a/code/game/objects/devices/PDA/cart.dm
+++ b/code/game/objects/devices/PDA/cart.dm
@@ -532,8 +532,9 @@ Code:
for (var/obj/item/weapon/mop/M in world)
var/turf/ml = get_turf(M)
- if (ml.z != cl.z)
- continue
+ if(ml)
+ if (ml.z != cl.z)
+ continue
ldat += "Mop - \[[ml.x],[ml.y]\] - [M.reagents.total_volume ? "Wet" : "Dry"]
"
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 8146c3c195e..6e4cab7b728 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -80,7 +80,7 @@ obj/structure
Tsrc.ReplaceWithWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
- W:use(2)
+ if (W) W:use(2)
del(src)
return
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index 441db3f4970..717ea8d399a 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -354,7 +354,10 @@
Tempstun = 1
if(bodytemperature <= (T0C - 50)) // hurt temperature
- adjustFireLoss(round(sqrt(bodytemperature)) * 2)
+ if(bodytemperature <= 49) // sqrting negative numbers is bad
+ adjustFireLoss(200)
+ else
+ adjustFireLoss(round(sqrt(bodytemperature)) * 2)
else
Tempstun = 0
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 02df91f3d44..b0cd43d9b51 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -207,16 +207,17 @@
if(L.len == 2)
L -= mob
var/mob/M = L[1]
- if ((get_dist(mob, M) <= 1 || M.loc == mob.loc))
- var/turf/T = mob.loc
- . = ..()
- if (isturf(M.loc))
- var/diag = get_dir(mob, M)
- if ((diag - 1) & diag)
- else
- diag = null
- if ((get_dist(mob, M) > 1 || diag))
- step(M, get_dir(M.loc, T))
+ if(M)
+ if ((get_dist(mob, M) <= 1 || M.loc == mob.loc))
+ var/turf/T = mob.loc
+ . = ..()
+ if (isturf(M.loc))
+ var/diag = get_dir(mob, M)
+ if ((diag - 1) & diag)
+ else
+ diag = null
+ if ((get_dist(mob, M) > 1 || diag))
+ step(M, get_dir(M.loc, T))
else
for(var/mob/M in L)
M.other_mobs = 1