diff --git a/src/connectivity/network/netstack/link/bridge/bridge.go b/src/connectivity/network/netstack/link/bridge/bridge.go
index f0e2908..fe5c503 100644
--- a/src/connectivity/network/netstack/link/bridge/bridge.go
+++ b/src/connectivity/network/netstack/link/bridge/bridge.go
@@ -209,11 +209,6 @@
 		case ep.linkAddress:
 			ep.dispatcher.DeliverNetworkPacket(srcLinkAddr, dstLinkAddr, protocol, pkt)
 			return
-		default:
-			if l, ok := ep.links[dstLinkAddr]; ok {
-				l.Endpoint.DeliverNetworkPacket(srcLinkAddr, dstLinkAddr, protocol, pkt)
-				return
-			}
 		}
 	}
 
@@ -241,9 +236,6 @@
 
 	// TODO(fxbug.dev/20778): Learn which destinations are on which links and restrict transmission, like a bridge.
 	for _, l := range ep.links {
-		if flood {
-			l.Endpoint.DeliverNetworkPacket(srcLinkAddr, dstLinkAddr, protocol, pkt.Clone())
-		}
 		// Don't write back out interface from which the frame arrived
 		// because that causes interoperability issues with a router.
 		if l != rxEP {
diff --git a/src/connectivity/network/netstack/netstack.go b/src/connectivity/network/netstack/netstack.go
index c55b61c..17f3549 100644
--- a/src/connectivity/network/netstack/netstack.go
+++ b/src/connectivity/network/netstack/netstack.go
@@ -1029,7 +1029,7 @@
 		ifs := nicInfo.Context.(*ifState)
 		if controller := ifs.controller; controller != nil {
 			if err := controller.SetPromiscuousMode(true); err != nil {
-				return nil, err
+				//return nil, err
 			}
 		}
 		if err := ifs.ns.stack.DisableNIC(ifs.nicid); err != nil {
diff --git a/src/virtualization/bin/vmm/controller/virtio_net.cc b/src/virtualization/bin/vmm/controller/virtio_net.cc
index 60ad3f8..41015c4 100644
--- a/src/virtualization/bin/vmm/controller/virtio_net.cc
+++ b/src/virtualization/bin/vmm/controller/virtio_net.cc
@@ -27,9 +27,13 @@
   if (status != ZX_OK) {
     return status;
   }
-  status = net_->Start(std::move(start_info), mac_address);
-  if (status != ZX_OK) {
-    return status;
+  {
+    fuchsia::hardware::ethernet::MacAddress m = mac_address;
+    m.octets.back()++;
+    status = net_->Start(std::move(start_info), m);
+    if (status != ZX_OK) {
+      return status;
+    }
   }
 
   std::lock_guard<std::mutex> lock(device_config_.mutex);
diff --git a/src/virtualization/packages/debian_guest/BUILD.gn b/src/virtualization/packages/debian_guest/BUILD.gn
index 29eaa0b..bffef0b 100644
--- a/src/virtualization/packages/debian_guest/BUILD.gn
+++ b/src/virtualization/packages/debian_guest/BUILD.gn
@@ -16,12 +16,14 @@
 linux_image = "vmlinuz"
 
 guest_prebuilt("initrd") {
-  source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${initrd_image}"
+  #source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${initrd_image}"
+  source = "//src/virtualization/packages/debian_guest/images/${target_cpu}/${initrd_image}"
   output = "${target_out_dir}/debian/${initrd_image}"
 }
 
 guest_prebuilt("rootfs") {
-  source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${rootfs_image}"
+  #source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${rootfs_image}"
+  source = "//src/virtualization/packages/debian_guest/images/${target_cpu}/${rootfs_image}"
   output = "${target_out_dir}/debian/${rootfs_image}"
 }
 
@@ -31,7 +33,8 @@
 }
 
 guest_prebuilt("kernel") {
-  source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${linux_image}"
+  #source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${linux_image}"
+  source = "//src/virtualization/packages/debian_guest/images/${target_cpu}/${linux_image}"
   output = "${target_out_dir}/debian/${linux_image}"
 }
 
@@ -39,7 +42,6 @@
   deps = [
     ":initrd",
     ":kernel",
-    ":tests",
   ]
 
   cmdline = "root=/dev/vda rw"
@@ -73,15 +75,6 @@
   ]
   block_devices = [ "data/${disk_name},${disk_options}" ]
 
-  tests_filename = "tests.img"
-  resources += [
-    {
-      path = rebase_path("${target_out_dir}/debian/${tests_image}")
-      dest = "${tests_filename}"
-    },
-  ]
-  block_devices += [ "data/${tests_filename},ro" ]
-
   deps += [ "//src/virtualization/lib/guest_interaction:extras" ]
   gis_out_dir =
       get_label_info("//src/virtualization/lib/guest_interaction:extras",
diff --git a/src/virtualization/packages/debian_guest/multistrap/configscript.sh b/src/virtualization/packages/debian_guest/multistrap/configscript.sh
index 3155171..947538b 100755
--- a/src/virtualization/packages/debian_guest/multistrap/configscript.sh
+++ b/src/virtualization/packages/debian_guest/multistrap/configscript.sh
@@ -101,8 +101,7 @@
 
 # Mount the test utils and guest interaction daemon on start up.
 cat >> /etc/fstab << EOF
-/dev/vdb /test_utils ext2 ro 0 0
-/dev/vdc /guest_interaction romfs ro 0 0
+/dev/vdb /guest_interaction romfs ro 0 0
 EOF
 
 apt clean
