Index: render.c
===================================================================
--- render.c	(revision 478)
+++ render.c	(revision 479)
@@ -333,6 +333,17 @@
 	    multi_prepared=1;
 	    }
 
+	// shader with "tangent" attribute active ?
+	if(raydium_shader_support && raydium_shader_active>=0 &&
+	   raydium_shader_shaders[raydium_shader_active].attrib_tangent!=-1)
+	    {
+	     glVertexAttrib3fARB(raydium_shader_shaders[raydium_shader_active].attrib_tangent,
+			    raydium_vertex_tangent_x[i],
+			    raydium_vertex_tangent_y[i],
+			    raydium_vertex_tangent_z[i]);
+	     //printf("%f %f %f\n",raydium_vertex_tangent_x[i],raydium_vertex_tangent_y[i],raydium_vertex_tangent_z[i]);
+	    }
+
 	// THIS CODE IS DUPLICATED FOR SPEED REASON (1)
 	for(j=0;j<3;j++)
 	{
m].state==RAYDIUM_ODE_STATIC)
     {
     raydium_log("ODE: Error: Cannot change mass of a static element");
-    return;
+    return 0;
     }
     
 dBodyGetMass(raydium_ode_element[elem].body,&m);
-
 return (m.mass);    
 }
 
@@ -5487,12 +5486,12 @@
 if(!raydium_ode_element_isvalid(elem))
     {
     raydium_log("ODE: Error: cannot get autodisable flag: invalid name or index");
-    return ;
+    return -1;
     }
 if(raydium_ode_element[elem].state!=RAYDIUM_ODE_STANDARD)
     {
     raydium_log("ODE: Error: cannot get autodisable flag: not a standard object");
-    return ;
+    return -1;
     }
 
 return !dBodyIsEnabled(raydium_ode_element[elem].body);