Index: trunk/src/formats/obj_loader.cc
===================================================================
--- trunk/src/formats/obj_loader.cc	(revision 224)
+++ trunk/src/formats/obj_loader.cc	(revision 225)
@@ -195,5 +195,7 @@
 		float t2 = w3.y - w1.y;
 
-		float r = 1.0f / (s1 * t2 - s2 * t1);
+		float stst = s1 * t2 - s2 * t1;
+		float r = 0.0f;
+		if (stst > 0.0f || stst < 0.0f) r = 1.0f / stst;
 
 		vec3 sdir = ( t2 * xyz1 - t1 * xyz2 ) * r;
@@ -216,7 +218,7 @@
 		const vec3& n = vn[a];
 		const vec3& t = tan1[a];
-
-		tg[a] = vec3( glm::normalize(t - n * glm::dot( n, t )) ); 
-		//tg[a][3] =    (glm::dot(glm::cross(n, t), tan2[a]) < 0.0f) ? -1.0f : 1.0f;
+		if ( ! (t.x == 0.0f && t.y == 0.0f && t.z == 0.0f) )
+			tg[a] = vec3( glm::normalize(t - n * glm::dot( n, t )) ); 
+			//tg[a][3] =    (glm::dot(glm::cross(n, t), tan2[a]) < 0.0f) ? -1.0f : 1.0f;
 	}
 
