 			
 			if (invalidMinMax)
 				updateMinMax();
-			if (_boundsHaveChanged)
+			if (_boundsHaveChanged && hasChanged)
 				_boundsChanged.execute(this);
 		}
 

		 * signal is called only if the bounds of the stream actually changed.
		 * 
		 */
		public function unlock() : void
		{
			if (!_locked)
				throw new Error('Cannot unlock a stream that is not locked.');

			if (_localDispose)
				throw new Error('Cannot lock stream data which is already disposed.');
			
			checkReadUsage(this);
			checkWriteUsage(this);
			
			_locked = true;
