             var w:ChangeWatcher =
                 new ChangeWatcher(chain[0], handler, commitOnly,
                     watch(null, chain.slice(1), handler, commitOnly));
+            w.useWeakReference = useWeakReference;
             w.reset(host);
             return w;
         }

        this.commitOnly = commitOnly;
        this.next = next;
        events = {};
    }

    //--------------------------------------------------------------------------

     */
    public static function watch(host:Object, chain:Object,
                                 handler:Function,
                                 commitOnly:Boolean = false,
                                 useWeakReference:Boolean = false):ChangeWatcher
    {
        if (!(chain is Array))
            chain = [ chain ];
