diff --git a/spec/ModelSpec.js b/spec/ModelSpec.js
index <HASH>..<HASH> 100644
--- a/spec/ModelSpec.js
+++ b/spec/ModelSpec.js
@@ -12,7 +12,7 @@ describe('model', function() {
     });
   });
 
-  it("can create a model and listen for changes to a single property", function(done) {
+  it('should create a model and listen for changes to a single property', function(done) {
 
     // Create a new model.
     var model = Model();
@@ -26,4 +26,15 @@ describe('model', function() {
     // Set x.
     model.set('x', 30);
   });
+
+  it('should call fn only once for multiple updates', function(done) {
+    var model = Model();
+    model.when('x', function (x) {
+      expect(x).toBe(30);
+      done();
+    });
+    model.set('x', 10);
+    model.set('x', 20);
+    model.set('x', 30);
+  });
 });
diff --git a/src/model.js b/src/model.js
index <HASH>..<HASH> 100644
--- a/src/model.js
+++ b/src/model.js
@@ -51,7 +51,7 @@ define([], function () {
 
       // If there is not already a list 
       // of callbacks for the given key,
-      if(callbacks[key]) {
+      if(!callbacks[key]) {
 
         // then create one.
         callbacks[key] = [];
Added unit test for call fn only once for multiple updates