 		public function disposeLocalData(waitForUpload : Boolean = true) : void
 		{
 			if (_locked)
-				throw new Error("Stream data can not be disposed since it's locked for update");
+				throw new Error('Stream data can not be disposed since it\'s locked for update.');
 			if (waitForUpload)
 				_localDispose = true;
 			else

			if (!(stream._usage & StreamUsage.WRITE))
			{
				throw new Error(
					"Unable to write in vertex stream: stream usage "
					+ "is not set to StreamUsage.WRITE."
				);
			}
		}

		public static function concat(streams : Vector.<IVertexStream>, usage : uint) : VertexStream
		{
			var format		: VertexFormat	= streams[0].format;
			var numStreams 	: int			= streams.length;

			for (var i : int = 0; i < numStreams; ++i)
				if (!streams[i].format.equals(format))
					throw new Error("All vertex streams must have the same format.");

			// a bit expensive... but hey, it works :)
			var stream	: VertexStream	= extractSubStream(streams[0], usage, format);


		protected function set data(value : Vector.<Number>) : void
		{
			if (value && value.length != 0 && value.length % _format.size)
				throw new Error(
					'Invalid data: length does not match with the size of a vertex.'
				);
			
			_data = value;
			_changed.execute(this);
			updateMinMax(true);
		}
		
		public function get locked() : Boolean
