 		 * @param once Whether or not the listener should be executed only once.
 		 * @param signal The signal associated with the slot.
 		 * @param priority The priority of the slot.
+		 *
+		 * @throws ArgumentError An error is thrown if the given listener closure is <code>null</code>.
 		 */
 		public function SignalSlot(listener:Function, once:Boolean = false, signal:ISignal = null, priority:int = 0)
 		{
+			if (null == listener) throw new ArgumentError('Given listener is null.');
+
 			_listener = listener;
 			_isOnce = once;
 			_signal = signal;

			return "[SignalSlot listener: "+_listener+", once: "+_isOnce+", priority: "+_priority+"]";
		}

		public function pause():void
		{
		}

		public function resume():void
		{
		}

		public function swap(newListener:Function):void
		{
		}
	}
}
     * The SignalSlot class represents a signal slot.
     *
     * @author Robert Penner
	 * @author Joa Ebert
	 * @private
     */
	internal final class SignalSlot implements ISignalSlot
	{
		/**
		 * Private backing variable for the <code>signal</code> property.
		 * @private
		 */
		private var _signal:ISignal;

		/**
		 * Private backing variable for the <code>paused</code> property.
		 * @private
		 */
		private var _paused:Boolean;

		/**
		 * Private backing variable for the <code>listener</code> property.
		 *
		 * Visible in the signals package for fast access.
		 * @private
		 */
		internal var _listener:Function;

		/**
		 * Private backing variable for the <code>isOnce</code> property.
		 *
		 * Visible in the signals package for fast access.
		 * @private
		 */
		internal var _isOnce:Boolean;

		/**
		 * Private backing variable for the <code>priority</code> property.
		 *
		 * Visible in the signals package for fast access.
		 * @private
		 */
		internal var _priority:int;
