diff --git a/packages/core/parcel-bundler/src/Bundler.js b/packages/core/parcel-bundler/src/Bundler.js
index <HASH>..<HASH> 100644
--- a/packages/core/parcel-bundler/src/Bundler.js
+++ b/packages/core/parcel-bundler/src/Bundler.js
@@ -200,6 +200,7 @@ class Bundler {
 
     let bundle = this.createBundleTree(this.mainAsset);
     this.bundleHashes = await bundle.package(this.options, this.bundleHashes);
+    this.unloadOrphanedAssets();
     return bundle;
   }
 
@@ -211,6 +212,19 @@ class Bundler {
     }
   }
 
+  unloadOrphanedAssets() {
+    for (let asset of this.findOrphanAssets()) {
+      this.unloadAsset(asset);
+    }
+  }
+
+  unloadAsset(asset) {
+    this.loadedAssets.delete(asset.name);
+    if (this.watcher) {
+      this.watcher.unwatch(asset.name);
+    }
+  }
+
   async onChange(path) {
     console.time('change');
     let asset = this.loadedAssets.get(path);
@@ -243,7 +257,7 @@ class Bundler {
       return;
     }
 
-    this.loadedAssets.delete(path);
+    this.unloadAsset(asset);
     if (this.cache) {
       this.cache.delete(path);
     }
Unload orphaned assets after rebundling