 		
 		private var _stream			: IVertexStream		= null;
 		private var _streamVersion	: uint				= 0;
-		private var _vertexBuffers	: Dictionary		= new Dictionary(true);
+		private var _vertexBuffer	: VertexBuffer3D	= null;
 		private var _numVertices	: uint				= 0;
 		
 		public function get numVertices() : uint	{ return _numVertices; }

			if (!(_stream is VertexStream))
				return vstream.ressource.getVertexBuffer3D(context, component);
			
			var vbuffer		: VertexBuffer3D	= _vertexBuffers[vstream];
			var update		: Boolean			= vstream.version != _streamVersion;
			var numVertices	: uint				= vstream.length;
			
			if (numVertices && (!vbuffer || numVertices != _numVertices))
			{
				if (vbuffer)
					vbuffer.dispose();
				
				vbuffer = context.createVertexBuffer(vstream.length,
													 vstream.format.dwordsPerVertex);
				_vertexBuffers[vstream] = vbuffer;
				update = true;
			}
			
			if (vbuffer && update)
			{
				vbuffer.uploadFromVector(vstream._data, 0, numVertices);
				
				_streamVersion = vstream.version;
				_numVertices = numVertices;

					vstream.disposeLocalData();
			}
			
			return _vertexBuffer;
		}
		
		public function dispose() : void
		{
			_vertexBuffer.dispose();
		}
	}
}