Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 23749)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 23750)
@@ -228,4 +228,11 @@
         RTPrintf("Number of CPUs:  %u\n", numCpus);
 
+    BOOL fSyntheticCpu;
+    machine->GetCpuProperty(CpuPropertyType_Synthetic, &fSyntheticCpu);
+    if (details == VMINFO_MACHINEREADABLE)
+        RTPrintf("synthcpu=\"%s\"\n", fSyntheticCpu ? "on" : "off");
+    else
+        RTPrintf("Synthetic Cpu:   %s\n", fSyntheticCpu ? "on" : "off");
+
     ComPtr <IBIOSSettings> biosSettings;
     machine->COMGETTER(BIOSSettings)(biosSettings.asOutParam());
@@ -330,5 +337,5 @@
 
     BOOL PAEEnabled;
-    machine->COMGETTER(PAEEnabled)(&PAEEnabled);
+    machine->GetCpuProperty(CpuPropertyType_PAE, &PAEEnabled);
     if (details == VMINFO_MACHINEREADABLE)
         RTPrintf("pae=\"%s\"\n", PAEEnabled ? "on" : "off");
@@ -358,5 +365,5 @@
 
     BOOL HWVirtExNestedPagingEnabled;
-    machine->GetHWVirtExProperty(HWVirtExPropertyType_NestedPagingEnabled, &HWVirtExNestedPagingEnabled);
+    machine->GetHWVirtExProperty(HWVirtExPropertyType_NestedPaging, &HWVirtExNestedPagingEnabled);
     if (details == VMINFO_MACHINEREADABLE)
         RTPrintf("nestedpaging=\"%s\"\n", HWVirtExNestedPagingEnabled ? "on" : "off");
@@ -365,5 +372,5 @@
 
     BOOL HWVirtExVPIDEnabled;
-    machine->GetHWVirtExProperty(HWVirtExPropertyType_VPIDEnabled, &HWVirtExVPIDEnabled);
+    machine->GetHWVirtExProperty(HWVirtExPropertyType_VPID, &HWVirtExVPIDEnabled);
     if (details == VMINFO_MACHINEREADABLE)
         RTPrintf("vtxvpid=\"%s\"\n", HWVirtExVPIDEnabled ? "on" : "off");
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 23749)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 23750)
@@ -65,4 +65,5 @@
     MODIFYVMIOAPIC,
     MODIFYVMPAE,
+    MODIFYVMSYNTHCPU,
     MODIFYVMHWVIRTEX,
     MODIFYVMHWVIRTEXEXCLUSIVE,
@@ -137,4 +138,5 @@
     { "--ioapic",                  MODIFYVMIOAPIC,                  RTGETOPT_REQ_STRING },
     { "--pae",                     MODIFYVMPAE,                     RTGETOPT_REQ_STRING },
+    { "--synthcpu",                MODIFYVMSYNTHCPU,                RTGETOPT_REQ_STRING },
     { "--hwvirtex",                MODIFYVMHWVIRTEX,                RTGETOPT_REQ_STRING },
     { "--hwvirtexexcl",            MODIFYVMHWVIRTEXEXCLUSIVE,       RTGETOPT_REQ_STRING },
@@ -363,9 +365,9 @@
                     if (!strcmp(pValueUnion.psz, "on"))
                     {
-                        CHECK_ERROR (machine, COMSETTER(PAEEnabled)(true));
+                        CHECK_ERROR (machine, SetCpuProperty(CpuPropertyType_PAE, true));
                     }
                     else if (!strcmp(pValueUnion.psz, "off"))
                     {
-                        CHECK_ERROR (machine, COMSETTER(PAEEnabled)(false));
+                        CHECK_ERROR (machine, SetCpuProperty(CpuPropertyType_PAE, false));
                     }
                     else
@@ -378,4 +380,25 @@
             }
 
+            case MODIFYVMSYNTHCPU:
+            {
+                if (pValueUnion.psz)
+                {
+                    if (!strcmp(pValueUnion.psz, "on"))
+                    {
+                        CHECK_ERROR (machine, SetCpuProperty(CpuPropertyType_Synthetic, true));
+                    }
+                    else if (!strcmp(pValueUnion.psz, "off"))
+                    {
+                        CHECK_ERROR (machine, SetCpuProperty(CpuPropertyType_Synthetic, false));
+                    }
+                    else
+                    {
+                        errorArgument("Invalid --synthcpu argument '%s'", pValueUnion.psz);
+                        rc = E_FAIL;
+                    }
+                }
+                break;
+            }
+
             case MODIFYVMHWVIRTEX:
             {
@@ -426,9 +449,9 @@
                     if (!strcmp(pValueUnion.psz, "on"))
                     {
-                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_NestedPagingEnabled, TRUE));
+                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_NestedPaging, TRUE));
                     }
                     else if (!strcmp(pValueUnion.psz, "off"))
                     {
-                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_NestedPagingEnabled, FALSE));
+                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_NestedPaging, FALSE));
                     }
                     else
@@ -447,9 +470,9 @@
                     if (!strcmp(pValueUnion.psz, "on"))
                     {
-                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_VPIDEnabled, TRUE));
+                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_VPID, TRUE));
                     }
                     else if (!strcmp(pValueUnion.psz, "off"))
                     {
-                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_VPIDEnabled, FALSE));
+                        CHECK_ERROR (machine, SetHWVirtExProperty(HWVirtExPropertyType_VPID, FALSE));
                     }
                     else
Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp	(revision 23749)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp	(revision 23750)
@@ -1617,5 +1617,5 @@
 
         /* PAE/NX */
-        QString pae = aMachine.GetPAEEnabled()
+        QString pae = aMachine.GetCpuProperty(KCpuPropertyType_PAE)
             ? tr ("Enabled", "details report (PAE/NX)")
             : tr ("Disabled", "details report (PAE/NX)");
@@ -1628,5 +1628,5 @@
 
         /* Nested Paging */
-        QString nested = aMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPagingEnabled)
+        QString nested = aMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging)
             ? tr ("Enabled", "details report (Nested Paging)")
             : tr ("Disabled", "details report (Nested Paging)");
Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsSystem.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsSystem.cpp	(revision 23749)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsSystem.cpp	(revision 23750)
@@ -174,5 +174,5 @@
                          .GetProcessorFeature (KProcessorFeature_PAE);
     mCbPae->setEnabled (fPAESupported);
-    mCbPae->setChecked (aMachine.GetPAEEnabled());
+    mCbPae->setChecked (aMachine.GetCpuProperty(KCpuPropertyType_PAE));
 
     /* VT-x/AMD-V */
@@ -183,5 +183,5 @@
     mCbNestedPaging->setEnabled (fVTxAMDVSupported &&
                                  aMachine.GetHWVirtExProperty(KHWVirtExPropertyType_Enabled));
-    mCbNestedPaging->setChecked (aMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPagingEnabled));
+    mCbNestedPaging->setChecked (aMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging));
 
     if (mValidator)
@@ -228,5 +228,5 @@
 
     /* PAE/NX */
-    mMachine.SetPAEEnabled (mCbPae->isChecked());
+    mMachine.SetCpuProperty(KCpuPropertyType_PAE, mCbPae->isChecked());
 
     /* VT-x/AMD-V */
@@ -235,5 +235,5 @@
 
     /* Nested Paging */
-    mMachine.SetHWVirtExProperty(KHWVirtExPropertyType_NestedPagingEnabled, mCbNestedPaging->isChecked());
+    mMachine.SetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging, mCbNestedPaging->isChecked());
 }
 
Index: /trunk/src/VBox/Main/ConsoleImpl2.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 23749)
+++ /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 23750)
@@ -328,21 +328,26 @@
     /* HWVirtEx exclusive mode */
     BOOL fHWVirtExExclusive = true;
-    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_Exclusive, &fHWVirtExExclusive);                   H();
+    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_Exclusive, &fHWVirtExExclusive);  H();
     rc = CFGMR3InsertInteger(pHWVirtExt, "Exclusive", fHWVirtExExclusive);                     RC_CHECK();
 
     /* Nested paging (VT-x/AMD-V) */
     BOOL fEnableNestedPaging = false;
-    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_NestedPagingEnabled, &fEnableNestedPaging);   H();
+    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_NestedPaging, &fEnableNestedPaging);   H();
     rc = CFGMR3InsertInteger(pHWVirtExt, "EnableNestedPaging", fEnableNestedPaging);     RC_CHECK();
 
     /* VPID (VT-x) */
     BOOL fEnableVPID = false;
-    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_VPIDEnabled, &fEnableVPID);                   H();
+    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_VPID, &fEnableVPID);        H();
     rc = CFGMR3InsertInteger(pHWVirtExt, "EnableVPID", fEnableVPID);                     RC_CHECK();
 
     /* Physical Address Extension (PAE) */
     BOOL fEnablePAE = false;
-    hrc = pMachine->COMGETTER(PAEEnabled)(&fEnablePAE);                             H();
+    hrc = pMachine->GetCpuProperty(CpuPropertyType_PAE, &fEnablePAE);               H();
     rc = CFGMR3InsertInteger(pRoot, "EnablePAE", fEnablePAE);                       RC_CHECK();
+
+    /* Synthetic CPU */
+    BOOL fSyntheticCpu = false;
+    hrc = pMachine->GetCpuProperty(CpuPropertyType_Synthetic, &fSyntheticCpu);      H();
+    rc = CFGMR3InsertInteger(pRoot, "SyntheticCpu", fSyntheticCpu);                 RC_CHECK();
 
     BOOL fPXEDebug;
Index: /trunk/src/VBox/Main/MachineImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/MachineImpl.cpp	(revision 23749)
+++ /trunk/src/VBox/Main/MachineImpl.cpp	(revision 23750)
@@ -187,4 +187,5 @@
     mHWVirtExExclusive = true;
     mPAEEnabled = false;
+    mSyntheticCpu = false;
     mPropertyServiceActive = false;
 
@@ -225,4 +226,5 @@
         mHWVirtExExclusive != that.mHWVirtExExclusive ||
         mPAEEnabled != that.mPAEEnabled ||
+        mSyntheticCpu != that.mSyntheticCpu ||
         mCPUCount != that.mCPUCount ||
         mClipboardMode != that.mClipboardMode)
@@ -1297,5 +1299,5 @@
 }
 
-STDMETHODIMP Machine::GetHWVirtExProperty(HWVirtExPropertyType_T property, BOOL *aVal)
+STDMETHODIMP Machine::GetCpuProperty(CpuPropertyType_T property, BOOL *aVal)
 {
     if (!aVal)
@@ -1304,4 +1306,61 @@
     AutoCaller autoCaller(this);
     CheckComRCReturnRC(autoCaller.rc());
+
+    AutoReadLock alock(this);
+
+    switch(property)
+    {
+    case CpuPropertyType_PAE:
+        *aVal = mHWData->mPAEEnabled;
+        break;
+
+    case CpuPropertyType_Synthetic:
+        *aVal = mHWData->mSyntheticCpu;
+        break;
+
+    default:
+        return E_INVALIDARG;
+    }
+    return S_OK;
+}
+
+STDMETHODIMP Machine::SetCpuProperty(CpuPropertyType_T property, BOOL aVal)
+{
+    if (!aVal)
+        return E_POINTER;
+
+    AutoCaller autoCaller(this);
+    CheckComRCReturnRC(autoCaller.rc());
+
+    AutoWriteLock alock(this);
+
+    HRESULT rc = checkStateDependency(MutableStateDep);
+    CheckComRCReturnRC(rc);
+
+    switch(property)
+    {
+    case CpuPropertyType_PAE:
+        mHWData->mPAEEnabled = !!aVal;
+        break;
+
+    case CpuPropertyType_Synthetic:
+        mHWData->mSyntheticCpu = !!aVal;
+        break;
+
+    default:
+        return E_INVALIDARG;
+    }
+    return S_OK;
+}
+
+STDMETHODIMP Machine::GetHWVirtExProperty(HWVirtExPropertyType_T property, BOOL *aVal)
+{
+    if (!aVal)
+        return E_POINTER;
+
+    AutoCaller autoCaller(this);
+    CheckComRCReturnRC(autoCaller.rc());
+
+    AutoReadLock alock(this);
 
     switch(property)
@@ -1315,9 +1374,9 @@
         break;
 
-    case HWVirtExPropertyType_VPIDEnabled:
+    case HWVirtExPropertyType_VPID:
         *aVal = mHWData->mHWVirtExVPIDEnabled;
         break;
 
-    case HWVirtExPropertyType_NestedPagingEnabled:
+    case HWVirtExPropertyType_NestedPaging:
         *aVal = mHWData->mHWVirtExNestedPagingEnabled;
         break;
@@ -1343,20 +1402,20 @@
     case HWVirtExPropertyType_Enabled:
         mHWData.backup();
-        mHWData->mHWVirtExEnabled = aVal;
+        mHWData->mHWVirtExEnabled = !!aVal;
         break;
 
     case HWVirtExPropertyType_Exclusive:
         mHWData.backup();
-        mHWData->mHWVirtExExclusive = aVal;
+        mHWData->mHWVirtExExclusive = !!aVal;
         break;
 
-    case HWVirtExPropertyType_VPIDEnabled:
+    case HWVirtExPropertyType_VPID:
         mHWData.backup();
-        mHWData->mHWVirtExVPIDEnabled = aVal;
+        mHWData->mHWVirtExVPIDEnabled = !!aVal;
         break;
 
-    case HWVirtExPropertyType_NestedPagingEnabled:
+    case HWVirtExPropertyType_NestedPaging:
         mHWData.backup();
-        mHWData->mHWVirtExNestedPagingEnabled = aVal;
+        mHWData->mHWVirtExNestedPagingEnabled = !!aVal;
         break;
 
@@ -1364,37 +1423,4 @@
         return E_INVALIDARG;
     }
-    return S_OK;
-}
-
-STDMETHODIMP Machine::COMGETTER(PAEEnabled)(BOOL *enabled)
-{
-    if (!enabled)
-        return E_POINTER;
-
-    AutoCaller autoCaller(this);
-    CheckComRCReturnRC(autoCaller.rc());
-
-    AutoReadLock alock(this);
-
-    *enabled = mHWData->mPAEEnabled;
-
-    return S_OK;
-}
-
-STDMETHODIMP Machine::COMSETTER(PAEEnabled)(BOOL enable)
-{
-    AutoCaller autoCaller(this);
-    CheckComRCReturnRC(autoCaller.rc());
-
-    AutoWriteLock alock(this);
-
-    HRESULT rc = checkStateDependency(MutableStateDep);
-    CheckComRCReturnRC(rc);
-
-    /** @todo check validity! */
-
-    mHWData.backup();
-    mHWData->mPAEEnabled = enable;
-
     return S_OK;
 }
@@ -5172,4 +5198,5 @@
         mHWData->mHWVirtExVPIDEnabled         = data.fVPID;
         mHWData->mPAEEnabled                  = data.fPAE;
+        mHWData->mSyntheticCpu                = data.fSyntheticCpu;
 
         mHWData->mCPUCount = data.cCPUs;
@@ -6120,4 +6147,5 @@
         data.fVPID                  = !!mHWData->mHWVirtExVPIDEnabled;
         data.fPAE                   = !!mHWData->mPAEEnabled;
+        data.fSyntheticCpu          = !!mHWData->mSyntheticCpu;
 
         data.cCPUs = mHWData->mCPUCount;
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 23749)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 23750)
@@ -758,6 +758,33 @@
 
   <enum
+    name="CpuPropertyType"
+    uuid="af7bb668-eeb1-4404-b77f-a114b30c92d6"
+  >
+    <desc>
+      Virtual CPU property type. This enumeration represents possible values of the
+      IMachine get- and setCpuProperty methods.
+    </desc>
+    <const name="Null"                  value="0">
+      <desc>Null value (never used by the API).</desc>
+    </const>
+    <const name="PAE"                   value="1">
+      <desc>
+        This setting determines whether VirtualBox will expose the Physical Address
+        Extension (PAE) feature of the host CPU to the guest. Note that in case PAE
+        is not available, it will not be reported.
+      </desc>
+    </const>
+    <const name="Synthetic"             value="2">
+      <desc>
+        This setting determines whether VirtualBox will expose a synthetic CPU to the guest to allow
+        live migration between host systems that differ significantly.
+      </desc>
+    </const>
+  </enum>
+ 
+ 
+  <enum
     name="HWVirtExPropertyType"
-    uuid="843794f2-f392-46a7-8ff4-a0857a9b4b32"
+    uuid="ce81dfdd-d2b8-4a90-bbea-40ee8b7ffcee"
   >
     <desc>
@@ -765,5 +792,5 @@
       IMachine get- and setHWVirtExProperty methods.
     </desc>
-    <const name="Null"                  value="0">
+    <const name="Null"                value="0">
       <desc>Null value (never used by the API).</desc>
     </const>
@@ -780,5 +807,5 @@
       </desc>
     </const>
-    <const name="VPIDEnabled"         value="3">
+    <const name="VPID"                value="3">
       <desc>
         VT-x VPID boolean property. Note that in case this extension is not available,
@@ -786,5 +813,5 @@
       </desc>
     </const>
-    <const name="NestedPagingEnabled" value="4">
+    <const name="NestedPaging"        value="4">
       <desc>
         Nested Paging boolean property. Note that in case this extension is not available,
@@ -4045,5 +4072,5 @@
   <interface
      name="IMachine" extends="$unknown"
-     uuid="ff5155a9-da1e-4225-8829-2f9f105d4db2"
+     uuid="e8e1c6a9-679e-4a73-a1e5-d9a81027fbda"
      wsmap="managed"
      >
@@ -4273,12 +4300,4 @@
     </attribute>
 
-    <attribute name="PAEEnabled" type="boolean" default="false">
-      <desc>
-        This setting determines whether VirtualBox will expose the Physical Address
-        Extension (PAE) feature of the host CPU to the guest. Note that in case PAE
-        is not available, it will not be reported.
-      </desc>
-    </attribute>
-
     <attribute name="snapshotFolder" type="wstring">
       <desc>
@@ -5011,4 +5030,46 @@
       <param name="value" type="wstring" dir="in">
         <desc>Value to assign to the key.</desc>
+      </param>
+    </method>
+
+    <method name="getCpuProperty" const="yes">
+      <desc>
+        Returns the virtual CPU boolean value of the specified property.
+
+        <result name="E_INVALIDARG">
+          Invalid property.
+        </result>
+
+      </desc>
+      <param name="property" type="CpuPropertyType" dir="in">
+        <desc>
+          Property type to query.
+        </desc>
+      </param>
+      <param name="value" type="boolean" dir="return">
+        <desc>
+          Property value.
+        </desc>
+      </param>
+    </method>
+
+    <method name="setCpuProperty">
+      <desc>
+        Sets the virtual CPU boolean value of the specified property.
+
+        <result name="E_INVALIDARG">
+          Invalid property.
+        </result>
+
+      </desc>
+      <param name="property" type="CpuPropertyType" dir="in">
+        <desc>
+          Property type to query.
+        </desc>
+      </param>
+      <param name="value" type="boolean" dir="in">
+        <desc>
+          Property value.
+        </desc>
       </param>
     </method>
Index: /trunk/src/VBox/Main/include/MachineImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/MachineImpl.h	(revision 23749)
+++ /trunk/src/VBox/Main/include/MachineImpl.h	(revision 23750)
@@ -291,4 +291,5 @@
         BOOL           mAccelerate2DVideoEnabled;
         BOOL           mPAEEnabled;
+        BOOL           mSyntheticCpu;
         ULONG          mCPUCount;
         BOOL           mAccelerate3DEnabled;
@@ -535,6 +536,4 @@
     STDMETHOD(COMSETTER(Accelerate2DVideoEnabled))(BOOL enabled);
     STDMETHOD(COMGETTER(BIOSSettings))(IBIOSSettings **biosSettings);
-    STDMETHOD(COMGETTER(PAEEnabled))(BOOL *enabled);
-    STDMETHOD(COMSETTER(PAEEnabled))(BOOL enabled);
     STDMETHOD(COMGETTER(SnapshotFolder))(BSTR *aSavedStateFolder);
     STDMETHOD(COMSETTER(SnapshotFolder))(IN_BSTR aSavedStateFolder);
@@ -584,4 +583,6 @@
     STDMETHOD(GetExtraData)(IN_BSTR aKey, BSTR *aValue);
     STDMETHOD(SetExtraData)(IN_BSTR aKey, IN_BSTR aValue);
+    STDMETHOD(GetCpuProperty)(CpuPropertyType_T property, BOOL *aVal);
+    STDMETHOD(SetCpuProperty)(CpuPropertyType_T property, BOOL aVal);
     STDMETHOD(GetHWVirtExProperty)(HWVirtExPropertyType_T property, BOOL *aVal);
     STDMETHOD(SetHWVirtExProperty)(HWVirtExPropertyType_T property, BOOL aVal);
Index: /trunk/src/VBox/Main/xml/Settings.cpp
===================================================================
--- /trunk/src/VBox/Main/xml/Settings.cpp	(revision 23749)
+++ /trunk/src/VBox/Main/xml/Settings.cpp	(revision 23750)
@@ -1210,4 +1210,5 @@
           fVPID(false),
           fPAE(false),
+          fSyntheticCpu(false),
           cCPUs(1),
           ulMemorySizeMB((uint32_t)-1),
@@ -1472,4 +1473,6 @@
             if ((pelmCPUChild = pelmHwChild->findChildElement("PAE")))
                 pelmCPUChild->getAttributeValue("enabled", hw.fPAE);
+            if ((pelmCPUChild = pelmHwChild->findChildElement("SyntheticCpu")))
+                pelmCPUChild->getAttributeValue("enabled", hw.fSyntheticCpu);            
         }
         else if (pelmHwChild->nameEquals("Memory"))
@@ -2320,4 +2323,6 @@
     if (hw.fPAE)
         pelmCPU->createChild("PAE")->setAttribute("enabled", hw.fPAE);
+    if (hw.fSyntheticCpu)
+        pelmCPU->createChild("SyntheticCpu")->setAttribute("enabled", hw.fSyntheticCpu);
     pelmCPU->setAttribute("count", hw.cCPUs);
 
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 23749)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 23750)
@@ -446,4 +446,8 @@
 </xsd:complexType>
 
+<xsd:complexType name="TSyntheticCpuType">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
 <xsd:complexType name="TPAEType">
   <xsd:attribute name="enabled" type="xsd:boolean"/>
@@ -463,4 +467,5 @@
     <xsd:element name="HardwareVirtExVPID" type="THWVirtExVPIDType" minOccurs="0"/>
     <xsd:element name="PAE" type="TPAEType" minOccurs="0"/>
+    <xsd:element name="SyntheticCpu" type="TSyntheticCpuType" minOccurs="0"/>
   </xsd:sequence>
   <xsd:attribute name="count" type="TCPUCount" default="1"/>
