diff --git a/hw/pci.c b/hw/pci.c
index 023f7b6..84e7b35 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1161,8 +1161,11 @@ static void pci_device_print(Monitor *mon, QDict *device)
         qdict_get_int(info, "limit"));
     }

+    QObject* qobj;
     QLIST_FOREACH_ENTRY(qdict_get_qlist(device, "regions"), entry) {
-        qdict = qobject_to_qdict(qlist_entry_obj(entry));
+        qobj = qlist_entry_obj(entry);
+        if(!qobj) continue;
+        qdict = qobject_to_qdict(qobj);
         monitor_printf(mon, "      BAR%d: ", (int)
qdict_get_int(qdict, "bar"));

