Index: trunk/src/gfx/image.cc
===================================================================
--- trunk/src/gfx/image.cc	(revision 380)
+++ trunk/src/gfx/image.cc	(revision 383)
@@ -4,4 +4,5 @@
 
 #include "nv/gfx/image.hh"
+#include "nv/stl/algorithm.hh"
 
 using namespace nv;
@@ -31,5 +32,5 @@
 		for( int i = 0; i < m_size.y; ++i )
 		{
-			std::copy( data + i * bline, data + (i + 1) * bline, m_data + bsize - ( i + 1 ) * bline );
+			raw_copy( data + i * bline, data + (i + 1) * bline, m_data + bsize - ( i + 1 ) * bline );
 		}
 
@@ -37,5 +38,5 @@
 	else 
 	{
-		std::copy( data, data + bsize, m_data );
+		raw_copy( data, data + bsize, m_data );
 	}
 }
@@ -43,5 +44,5 @@
 void image::fill( uint8 value )
 {
-	std::fill( m_data, m_data + m_size.x * m_size.y * (int)m_depth, value );
+	raw_fill( m_data, m_data + m_size.x * m_size.y * (int)m_depth, value );
 }
 
@@ -56,5 +57,5 @@
 	{
 		// TODO: test 
-		std::fill( m_data + bpos + bline * i, m_data + bpos + bline * i + stride, value );
+		raw_fill( m_data + bpos + bline * i, m_data + bpos + bline * i + stride, value );
 	}
 }
@@ -73,5 +74,5 @@
 //		memcpy( m_data+((r.pos.y+i)*m_size.x + r.pos.x ) * m_depth, 
 //			data + (i*stride), r.size.x * m_depth );
-		std::copy( data + i*stride, data + (i+1)*stride, m_data + bpos + bline * i );
+		raw_copy( data + i*stride, data + (i+1)*stride, m_data + bpos + bline * i );
 	}
 }
Index: trunk/src/gfx/mesh_creator.cc
===================================================================
--- trunk/src/gfx/mesh_creator.cc	(revision 380)
+++ trunk/src/gfx/mesh_creator.cc	(revision 383)
@@ -350,6 +350,6 @@
 	for ( uint32 i = 0; i < count; ++i )
 	{
-		std::copy_n( a->data + i * adesc.size, adesc.size, data + i*desc.size );
-		std::copy_n( b->data + i * bdesc.size, bdesc.size, data + i*desc.size + adesc.size );
+		raw_copy_n( a->data + i * adesc.size, adesc.size, data + i*desc.size );
+		raw_copy_n( b->data + i * bdesc.size, bdesc.size, data + i*desc.size + adesc.size );
 	}
 	mesh_raw_channel* result = new mesh_raw_channel;
@@ -373,6 +373,6 @@
 	{
 		size_t a_size = vtx_size * a->count;
-		std::copy_n( a->data, a_size, data );
-		std::copy_n( b->data, vtx_size * b->count, data + a_size );		
+		raw_copy_n( a->data, a_size, data );
+		raw_copy_n( b->data, vtx_size * b->count, data + a_size );
 	}
 	else
@@ -385,6 +385,6 @@
 		for ( size_t i = 0; i < frame_count; ++i )
 		{
-			std::copy_n( a->data + pos_a, frame_size_a, data + pos );
-			std::copy_n( b->data + pos_b, frame_size_b, data + pos + frame_size_a );				pos_a += frame_size_a; 
+			raw_copy_n( a->data + pos_a, frame_size_a, data + pos );
+			raw_copy_n( b->data + pos_b, frame_size_b, data + pos + frame_size_a );				pos_a += frame_size_a;
 			pos_b += frame_size_b; 
 			pos   += frame_size_a + frame_size_b;
Index: trunk/src/gfx/skeletal_mesh.cc
===================================================================
--- trunk/src/gfx/skeletal_mesh.cc	(revision 380)
+++ trunk/src/gfx/skeletal_mesh.cc	(revision 383)
@@ -43,5 +43,5 @@
 			}
 
-			std::fill( m_pntdata.raw_data(), m_pntdata.raw_data() + m_pntdata.raw_size(), 0 );
+			fill( m_pntdata.raw_data(), m_pntdata.raw_data() + m_pntdata.raw_size(), 0 );
 			for ( unsigned int i = 0; i < vertex_count; ++i )
 			{
