Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 29606)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 29607)
@@ -1771,23 +1771,29 @@
 {
     QString sDetails;
-    QString m = aDevice.GetManufacturer().trimmed();
-    QString p = aDevice.GetProduct().trimmed();
-    if (m.isEmpty() && p.isEmpty())
-    {
-        sDetails =
-            tr ("Unknown device %1:%2", "USB device details")
-            .arg (QString().sprintf ("%04hX", aDevice.GetVendorId()))
-            .arg (QString().sprintf ("%04hX", aDevice.GetProductId()));
-    }
+    if (aDevice.isNull())
+        sDetails = tr("Unknown device", "USB device details");
     else
     {
-        if (p.toUpper().startsWith (m.toUpper()))
-            sDetails = p;
+        QString m = aDevice.GetManufacturer().trimmed();
+        QString p = aDevice.GetProduct().trimmed();
+
+        if (m.isEmpty() && p.isEmpty())
+        {
+            sDetails =
+                tr ("Unknown device %1:%2", "USB device details")
+                .arg (QString().sprintf ("%04hX", aDevice.GetVendorId()))
+                .arg (QString().sprintf ("%04hX", aDevice.GetProductId()));
+        }
         else
-            sDetails = m + " " + p;
-    }
-    ushort r = aDevice.GetRevision();
-    if (r != 0)
-        sDetails += QString().sprintf (" [%04hX]", r);
+        {
+            if (p.toUpper().startsWith (m.toUpper()))
+                sDetails = p;
+            else
+                sDetails = m + " " + p;
+        }
+        ushort r = aDevice.GetRevision();
+        if (r != 0)
+            sDetails += QString().sprintf (" [%04hX]", r);
+    }
 
     return sDetails.trimmed();
