diff --git a/src/Compiler/WebpackCompiler.php b/src/Compiler/WebpackCompiler.php
index <HASH>..<HASH> 100644
--- a/src/Compiler/WebpackCompiler.php
+++ b/src/Compiler/WebpackCompiler.php
@@ -11,6 +11,7 @@ use Symfony\Component\Process\ProcessBuilder;
 use Closure;
 use RuntimeException;
 use Symfony\Component\Process\Exception\RuntimeException as ProcessRuntimeException;
+use Exception;
 
 class WebpackCompiler
 {
@@ -116,6 +117,16 @@ class WebpackCompiler
         $this->logger->info('Starting process', array($process->getCommandLine()));
         $process->start($processCallback);
 
+        try {
+            $this->loop($process, $config, $processCallback);
+        } catch (Exception $exception) {
+            $process->stop();
+            throw $exception;
+        }
+    }
+
+    private function loop(Process $process, WebpackConfig $config, $processCallback)
+    {
         while (true) {
             sleep(1);
             $this->logger->debug('Dumping webpack configuration');
@@ -135,7 +146,7 @@ class WebpackCompiler
                 $process->getOutput();
 
                 // try to save the manifest - output callback is not called in dashboard mode
-                $that->saveManifest(false);
+                $this->saveManifest(false);
             }
         }
     }
Stop inner process if exception is thrown

Fixes part of #<I> - inner process is stopped in such a case