diff --git a/hw/qdev.c b/hw/qdev.c
index 374d2d0..1a9eb2e 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -258,6 +258,11 @@ int qdev_unplug(DeviceState *dev)
                    dev->parent_bus->name);
         return -1;
     }
+    if (!dev->info->unplug) {
+        qemu_error("Unplug event for bus %s not defined\n",
+                   dev->parent_bus->name);
+        return -1;
+    }
     return dev->info->unplug(dev);
 }
 
