 			{
 				var listener : Function = function(event : Event) : void
 				{
+					if(targetingOnly && event.eventPhase == EventPhase.AT_TARGET)
+					{
+						event.stopPropagation();
+					}
+					
 					observer.onNext(event);
 				};
 				

		 * @param eventType The valueClass of event dispatched by eventDispatcher. Event will be used if this argument is null.
		 * @param useCapture Whether to pass useCapture when subscribing to and unsubscribing from the event
		 * @param priority The priority of the event
		 * @return An observable sequence of eventType, or Event if eventType is null
		 */		
		public static function fromEvent(eventDispatcher:IEventDispatcher, eventType:String, useCapture:Boolean=false, priority:int=0):IObservable
		{
			if (eventDispatcher == null)
			{

		 * @param priority The priority of the event
		 * @return An observable sequence of commonValueClass, or Event if commonValueClass is null 
		 */
		public static function fromEvents(eventDispatcher:IEventDispatcher, eventTypes:Array, useCapture:Boolean=false, priority:int=0, targetingOnly:Boolean=false):IObservable
		{
			return Observable.fromArray(eventTypes)
					.mapMany(function(eventType : String) : IObservable
					{
						return fromEvent(eventDispatcher, eventType, useCapture, priority, targetingOnly);
					});
		}
		
