 				event.signal = this;
 			}
 			
-			// During a dispatch, add() and remove() should clone listeners array instead of modifying it.
+			// During a dispatch, add() and remove() should clone listeners array
+			// instead of modifying it.
 			listenersNeedCloning = true;
 			//// Call listeners.
 			var listener:Function;
-			if (listenerBoxes.length)
+			if (listenerBoxes.length != 0)
 			{
 				//TODO: investigate performance of various approaches
 				

		/** @inheritDoc */
		public function removeAll():void
		{
			// Looping backwards is more efficient when removing array items.
			for (var i:uint = listenerBoxes.length; i--; )
			{
				remove(listenerBoxes[i].listener as Function);
			}
		}
		

		/** @inheritDoc */
		public function set valueClasses(value:Array):void
		{
			//todo when setting null we create a new array, why?

			// Clone so the Array cannot be affected from outside.
			_valueClasses = value ? value.slice() : [];

			var i:int = _valueClasses.length;
			while(--i > -1)
			{
				if (!(_valueClasses[i] is Class))
				{
					throw new ArgumentError('Invalid valueClasses argument: ' +
						'item at index ' + i + ' should be a Class but was:<' +
						_valueClasses[i] + '>.');
				}
			}
		}
