diff --git a/source/Mobs/Skeleton.cpp b/source/Mobs/Skeleton.cpp
index bec912afa..ad4037db9 100644
--- a/source/Mobs/Skeleton.cpp
+++ b/source/Mobs/Skeleton.cpp
@@ -21,12 +21,13 @@ void cSkeleton::Tick(float a_Dt, cChunk & a_Chunk)
 {
 	cMonster::Tick(a_Dt, a_Chunk);
 
-	// TODO Outsource
-	// TODO should do SkyLight check, mobs in the dark don�t burn 
-	if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+	if ((GetWorld()->GetBlockSkyLight(GetPosX(), GetPosY(), GetPosZ()) == 15) && (GetWorld()->GetBlock(GetPosX(), GetPosY(), GetPosZ()) != E_BLOCK_SOULSAND))
 	{
-		// Burn for 10 ticks, then decide again
-		StartBurning(10);
+		if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+		{
+			// Burn for 100 ticks, then decide again
+			StartBurning(100);
+		}
 	}
 }
 
diff --git a/source/Mobs/Zombie.cpp b/source/Mobs/Zombie.cpp
index a6e39d6df..f3adf1283 100644
--- a/source/Mobs/Zombie.cpp
+++ b/source/Mobs/Zombie.cpp
@@ -3,10 +3,12 @@
 
 #include "Zombie.h"
 #include "../World.h"
+#include "../LineBlockTracer.h"
 
 
 
 
+// They're eating your brains!
 
 cZombie::cZombie(void) :
 	super("Zombie", 54, "mob.zombie.hurt", "mob.zombie.death", 0.6, 1.8)
@@ -20,12 +22,13 @@ cZombie::cZombie(void) :
 void cZombie::Tick(float a_Dt, cChunk & a_Chunk)
 {
 	super::Tick(a_Dt, a_Chunk);
-
-	// TODO Same as in cSkeleton :D
-	if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+	if ((GetWorld()->GetBlockSkyLight(GetPosX(), GetPosY(), GetPosZ()) == 15) && (GetWorld()->GetBlock(GetPosX(), GetPosY(), GetPosZ()) != E_BLOCK_SOULSAND))
 	{
-		// Burn for 10 ticks, then decide again
-		StartBurning(10);
+		if ((GetWorld()->GetTimeOfDay() < (12000 + 1000)) && !IsOnFire())
+		{
+			// Burn for 100 ticks, then decide again
+			StartBurning(100);
+		}
 	}
 }