 			invalidate();
 		}
 
-		public function disposeLocalData() : void
-		{
-			if (length != resource.numIndices)
+		public function disposeLocalData(waitForUpload : Boolean = true) : void
+		{
+			if (waitForUpload && _length != resource.numIndices)
+				_localDispose = true;
+			else
 			{
-				throw new Error(
-					"Unable to dispose local data: "
-					+ "some indices have not been uploaded."
-				);
+				_data = null;
+				_usage = StreamUsage.STATIC;
 			}
-
-			_data = null;
-			_usage = StreamUsage.STATIC;
 		}
 		
 		public function dispose() : void

	{
		use namespace minko_stream;

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

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

			invalidate();
		}

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

		public function toString() : String
