Index: trunk/src/gl/gl_enum.cc
===================================================================
--- trunk/src/gl/gl_enum.cc	(revision 235)
+++ trunk/src/gl/gl_enum.cc	(revision 237)
@@ -246,4 +246,22 @@
 	case GL_INT_VEC3       : return INT_VECTOR_3;
 	case GL_INT_VEC4       : return INT_VECTOR_4;
+// TODO: separate types?
+	case GL_SAMPLER_1D         : return INT;
+	case GL_SAMPLER_2D         : return INT;
+	case GL_SAMPLER_3D         : return INT;
+	case GL_SAMPLER_CUBE       : return INT;
+	case GL_SAMPLER_1D_SHADOW  : return INT;	
+	case GL_SAMPLER_2D_SHADOW  : return INT;
+// TODO: implement?
+//	case GL_BOOL	
+//	case GL_BOOL_VEC2
+//	case GL_BOOL_VEC3
+//	case GL_BOOL_VEC4
+//	case GL_FLOAT_MAT2x3	
+//	case GL_FLOAT_MAT2x4	
+//	case GL_FLOAT_MAT3x2	
+//	case GL_FLOAT_MAT3x4	
+//	case GL_FLOAT_MAT4x2	
+//	case GL_FLOAT_MAT4x3	
 	default : return datatype(0); // TODO: throw!
 	}
Index: trunk/src/gl/gl_program.cc
===================================================================
--- trunk/src/gl/gl_program.cc	(revision 235)
+++ trunk/src/gl/gl_program.cc	(revision 237)
@@ -197,5 +197,7 @@
 		}
 
-		m_uniform_map[ name ] = create_uniform( utype, name, uni_loc, uni_len );
+		uniform_base* u = create_uniform( utype, name, uni_loc, uni_len );
+		NV_ASSERT( u, "Unknown uniform type!" );
+		m_uniform_map[ name ] = u;
 	}
 
