diff --git a/lib/runner.js b/lib/runner.js
index <HASH>..<HASH> 100644
--- a/lib/runner.js
+++ b/lib/runner.js
@@ -164,15 +164,23 @@ GruntBrowserifyRunner.prototype = _.create(GruntBrowserifyRunner.prototype, {
 
   onBundleComplete: function (destination, next, options) {
     var self = this;
+    options = (options || {});
     return function (err, src) {
       if (err) {
         self.logger.log.error(err);
-        if (!options || !options.allowErrors) {
+        if (!options.allowErrors) {
           self.logger.fail.warn('Error running grunt-browserify.');
         }
       }
 
-      self.writer.write(destination, src);
+      if (src) {
+        if (!options.debug && !src.match(/;$/)) {
+          src += ';';
+        }
+
+        self.writer.write(destination, src);
+      }
+
       next();
     };
   }
Correctly output bundled src

Append semicolon ONLY IF not in debug mode (#<I>)
Don't write bad bundle when watching (Fix #<I>)