Index: /trunk/src/VBox/Devices/Serial/DevSerial.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DevSerial.cpp	(revision 29890)
+++ /trunk/src/VBox/Devices/Serial/DevSerial.cpp	(revision 29891)
@@ -974,4 +974,5 @@
     {
         pThis->f16550AEnabled = false;
+        LogRel(("Serial#%d: falling back to 16450 mode from load state\n", pDevIns->iInstance));
     }
     else
@@ -1156,5 +1157,11 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfg, "IRQ\0" "IOBase\0" "GCEnabled\0" "R0Enabled\0" "YieldOnLSRRead\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "IRQ\0"
+                                    "IOBase\0"
+                                    "GCEnabled\0"
+                                    "R0Enabled\0"
+                                    "YieldOnLSRRead\0"
+                                    "Enable16550A\0"
+                                    ))
     {
         AssertMsgFailed(("serialConstruct Invalid configuration values\n"));
@@ -1208,4 +1215,9 @@
     Log(("DevSerial: instance %d iobase=%04x irq=%d\n", iInstance, io_base, irq_lvl));
 
+    rc = CFGMR3QueryBoolDef(pCfg, "Enable16550A", &pThis->f16550AEnabled, true);
+    if (RT_FAILURE(rc))
+        return PDMDEV_SET_ERROR(pDevIns, rc,
+                                N_("Configuration error: Failed to get the \"Enable16550A\" value"));
+
     pThis->irq = irq_lvl;
 #ifdef VBOX_SERIAL_PCI
@@ -1215,5 +1227,5 @@
 #endif
 
-    pThis->f16550AEnabled = true;
+    LogRel(("Serial#%d: emulating %s\n", pDevIns->iInstance, pThis->f16550AEnabled ? "16550A" : "16450"));
 
     /*
