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

			return stream;
		}
	}
}
			_changed.execute(this, null);
			_boundsChanged.execute(this);
		}
		
		public function lockData(): Vector.<Number> {
			if (_dataLocked) 
				throw new Error("Data lock is already active");
			if (_localDispose)
				throw new Error("Can not lock stream data which is marked for disposal");
			checkWriteUsage(this);
			_dataLocked = true;
			return _data;
		}
		
		public function unlockData(): void {
			if (!_dataLocked)
				throw new Error("Data is not locked");
			_dataLocked = false;
			_invalidMinMax = true;
			_changed.execute(this, null);
		}

		public function push(data : Vector.<Number>) : void
		{
