diff --git a/lib/elastomer.js b/lib/elastomer.js
index <HASH>..<HASH> 100644
--- a/lib/elastomer.js
+++ b/lib/elastomer.js
@@ -316,9 +316,9 @@ Elastomer.prototype._unbindView = function () {
       this._unlink(this.getScope(), this, this.getModel())
     }
     this._unlink = null
-    this._linked = false
   }
 
+  this._linked = false
   this._view = null
   this['$'] = function () {}
 }
@@ -341,6 +341,25 @@ Elastomer.prototype.watchModel = function (path, callback, noInit) {
   return this.watch(this.getModel(), path, callback, noInit)
 }
 
+Elastomer.prototype.watchModelEvent = function (path, eventName, callback) {
+  var closable
+
+  if (typeof eventName === 'function') {
+    callback = eventName
+    eventName = 'all'
+  }
+
+  return this.watchModel(path, function (obj) {
+    if (closable) {
+      closable.close()
+    }
+    if (!obj || (typeof obj !== 'object')) {
+      return
+    }
+    closable = this.on(obj, eventName, callback)
+  }.bind(this))
+}
+
 Elastomer.prototype.watchAttribute = function (attribute, callback, noInit) {
   var self = this
   var host = this.host
fix: Linked is set to false only when unlink method is defined