diff --git a/src/watch.js b/src/watch.js
index <HASH>..<HASH> 100644
--- a/src/watch.js
+++ b/src/watch.js
@@ -44,18 +44,14 @@ function watch(context, options) {
       context.execute(paths).then(function(ctx) {
         context = ctx;
         paths.forEach(function(path) {
-          console.log("[changed]", path);
+          console.log("[updated]", path);
         });
 
-        inProgress = false;
-
-        var pendingPaths = Object.keys(nextPaths);
-
-        if (pendingPaths.length) {
-          nextPaths = {};
-          onChange(pendingPaths);
-        }
-      }, logError);
+        executePending();
+      }, function(err) {
+        logError(err);
+        executePending();
+      });
     }
   }
 
@@ -70,6 +66,17 @@ function watch(context, options) {
       console.warn("[removed]", path);
     }
   }
+
+  function executePending() {
+    inProgress = false;
+
+    var pendingPaths = Object.keys(nextPaths);
+
+    if (pendingPaths.length) {
+      nextPaths = {};
+      onChange(pendingPaths);
+    }
+  }
 }
 
 module.exports = watch;
Added logic in watcher to recover from errors