Index: trunk/src/gfx/mesh_creator.cc
===================================================================
--- trunk/src/gfx/mesh_creator.cc	(revision 520)
+++ trunk/src/gfx/mesh_creator.cc	(revision 526)
@@ -59,4 +59,5 @@
 void nv::mesh_nodes_creator::transform( float scale, const mat3& r33 )
 {
+	if ( !m_data ) return;
 	mat3 ri33 = math::inverse( r33 );
 	mat4 pre_transform ( scale * r33 );
@@ -79,4 +80,5 @@
 void nv::data_node_list_creator::transform( float scale, const mat3& r33 )
 {
+	if ( !m_data ) return;
 	mat3 ri33 = math::inverse( r33 );
 	mat4 pre_transform( scale * r33 );
@@ -114,4 +116,5 @@
 void nv::mesh_data_creator::transform( const vec3& pos, const mat3& r33, float scale /*= 1.0f */ )
 {
+	if ( !m_data ) return;
 	vec3 vertex_offset = pos;
 	mat3 vertex_transform = scale * r33;
@@ -298,4 +301,5 @@
 void nv::mesh_data_creator::rotate_quadrant( uint8 rotation )
 {
+	if ( !m_data ) return;
 	if ( rotation % 4 == 0 ) return;
 	NV_ASSERT( m_pos_type == FLOAT_VECTOR_3, "Unsupported position vector type!" );
@@ -350,4 +354,5 @@
 void nv::mesh_data_creator::mirror( bool x, bool z )
 {
+	if ( !m_data ) return;
 	if ( !x && !z ) return;
 	NV_ASSERT( m_pos_type == FLOAT_VECTOR_3, "Unsupported position vector type!" );
@@ -433,5 +438,5 @@
 void nv::mesh_data_creator::initialize()
 {
-	NV_ASSERT( m_data, "bad parameter!" );
+//	NV_ASSERT( m_data, "bad parameter!" );
 	m_pos_channel = nullptr;
 	m_nrm_channel = nullptr;
@@ -452,4 +457,5 @@
 	m_idx_type = NONE;
 
+	if ( m_data )
 	for ( uint32 c = 0; c < m_data->size(); ++c )
 	{
