 		{
 			destination[destinationPropertyName] = source[sourcePropertyName];
 		}
+        
+        private function sourceChangeHandler(event:ValueChangeEvent):void
+        {
+            if (event.propertyName != sourceID)
+                return;
+            
+            if (source)
+                source.removeEventListener(eventName, changeHandler);
+            
+            source = document[sourceID] as IEventDispatcher;
+            if (source)
+            {
+                source.addEventListener(eventName, changeHandler);
+                destination[destinationPropertyName] = source[sourcePropertyName];
+            }
+        }
 	}
 }
	import org.apache.flex.core.IBead;
	import org.apache.flex.core.IStrand;
	import org.apache.flex.core.IDocument;

    /**
     *  The SimpleBinding class is lightweight data-binding class that

			if (destination == null)
                destination = value;
            if (sourceID != null)
            {
    			source = document[sourceID] as IEventDispatcher;
                if (source == null)
                {
                    document.addEventListener("valueChange", 
                        sourceChangeHandler);
                    return;
                }
            }
            else
                source = document as IEventDispatcher;
			source.addEventListener(eventName, changeHandler);
