 			invalidate();
 		}
 
-		public function clone() : IndexStream
-		{
-			return new IndexStream(_usage, _data, length);
+		public function clone(usage : uint = 0) : IndexStream
+		{
+			return new IndexStream(usage || _usage, _data, length);
 		}
 
 		public function toString() : String

	{
		use namespace minko_stream;

		minko_stream var _data	: Vector.<uint>			= null;

		private var _usage		: uint					= 0;
		private var _resource	: IndexBuffer3DResource	= null;

			invalidate();
		}

		public function disposeLocalData(waitForUpload : Boolean = true) : void
		{
			if (waitForUpload && _length != resource.numIndices)
				_localDispose = true;
			else
			{
				_data = null;
				_usage = StreamUsage.STATIC;
			}
		}
		
		public function dispose() : void
