Index: /trunk/src/VBox/Devices/Network/DevPCNet.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 71789)
+++ /trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 71790)
@@ -4318,5 +4318,7 @@
         /* restore data */
         SSMR3GetBool(pSSM, &pThis->fLinkUp);
-        SSMR3GetU32(pSSM, &pThis->u32RAP);
+        int rc = SSMR3GetU32(pSSM, &pThis->u32RAP);
+        AssertRCReturn(rc, rc);
+        AssertLogRelMsgReturn(pThis->u32RAP < RT_ELEMENTS(pThis->aCSR), ("%#x\n", pThis->u32RAP), VERR_SSM_LOAD_CONFIG_MISMATCH);
         SSMR3GetS32(pSSM, &pThis->iISR);
         SSMR3GetU32(pSSM, &pThis->u32Lnkst);
@@ -4838,6 +4840,6 @@
 static DECLCALLBACK(int) pcnetDestruct(PPDMDEVINS pDevIns)
 {
+    PDMDEV_CHECK_VERSIONS_RETURN_QUIET(pDevIns);
     PPCNETSTATE pThis = PDMINS_2_DATA(pDevIns, PPCNETSTATE);
-    PDMDEV_CHECK_VERSIONS_RETURN_QUIET(pDevIns);
 
     if (PDMCritSectIsInitialized(&pThis->CritSect))
@@ -4857,4 +4859,5 @@
 static DECLCALLBACK(int) pcnetConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
+    PDMDEV_CHECK_VERSIONS_RETURN(pDevIns);
     PPCNETSTATE     pThis = PDMINS_2_DATA(pDevIns, PPCNETSTATE);
     PPDMIBASE       pBase;
@@ -4862,5 +4865,4 @@
     int             rc;
 
-    PDMDEV_CHECK_VERSIONS_RETURN(pDevIns);
     Assert(RT_ELEMENTS(pThis->aBCR) == BCR_MAX_RAP);
     Assert(RT_ELEMENTS(pThis->aMII) == MII_MAX_REG);
