diff -urN VirtualBox-4.1.18/src/VBox/Debugger/DBGCCmdHlp.cpp VirtualBox-4.1.18-new/src/VBox/Debugger/DBGCCmdHlp.cpp
--- VirtualBox-4.1.18/src/VBox/Debugger/DBGCCmdHlp.cpp	2012-06-20 15:15:38.000000000 +0200
+++ VirtualBox-4.1.18-new/src/VBox/Debugger/DBGCCmdHlp.cpp	2012-08-12 22:19:57.059314000 +0200
@@ -761,7 +761,7 @@
             break;
         case DBGCVAR_TYPE_NUMBER:
             u64Number = (uintptr_t)pVar->u.u64Number;
-            return VINF_SUCCESS;
+            break;
         case DBGCVAR_TYPE_GC_FAR:
             u64Number = (uintptr_t)pVar->u.GCFar.off;
             break;
diff -urN VirtualBox-4.1.18/src/VBox/VMM/VMMR3/DBGFReg.cpp VirtualBox-4.1.18-new/src/VBox/VMM/VMMR3/DBGFReg.cpp
--- VirtualBox-4.1.18/src/VBox/VMM/VMMR3/DBGFReg.cpp	2012-08-12 20:05:01.995309500 +0200
+++ VirtualBox-4.1.18-new/src/VBox/VMM/VMMR3/DBGFReg.cpp	2012-08-12 22:23:23.083475800 +0200
@@ -1838,10 +1838,90 @@
     return VMMR3EmtRendezvous(pVM, VMMEMTRENDEZVOUS_FLAGS_TYPE_ALL_AT_ONCE, dbgfR3RegNmQueryAllWorker, &Args);
 }
 
+/**
+ * Worker for the CPU register queries. Based on dbgfR3RegCpuQueryWorkerOnCpu().
+ *
+ * @returns VBox status code.
+ * @retval  VINF_SUCCESS
+ * @retval  VERR_INVALID_VM_HANDLE
+ * @retval  VERR_INVALID_CPU_ID
+ * @retval  VERR_DBGF_REGISTER_NOT_FOUND
+ * @retval  VERR_DBGF_UNSUPPORTED_CAST
+ * @retval  VINF_DBGF_TRUNCATED_REGISTER
+ * @retval  VINF_DBGF_ZERO_EXTENDED_REGISTER
+ *
+ * @param   pVM                 The VM handle.
+ * @param   idCpu               The virtual CPU ID.
+ * @param   enmReg              The register to set.
+ * @param   enmType             The type of the provided value.
+ * @param   fGuestRegs          Query guest CPU registers if set (true),
+ *                              hypervisor CPU registers if clear (false).
+ * @param   pValue              The value to set.
+ */
+static DECLCALLBACK(int) dbgfR3RegCpuSetWorkerOnCpu(PVM pVM, VMCPUID idCpu, DBGFREG enmReg, DBGFREGVALTYPE enmType,
+                                                      bool fGuestRegs, PDBGFREGVAL pValue)
+{
+    int rc = VINF_SUCCESS;
+    DBGF_REG_DB_LOCK_READ(pVM);
+
+    /*
+     * Look up the register set of the specified CPU.
+     */
+    PDBGFREGSET pSet = fGuestRegs
+                     ? pVM->aCpus[idCpu].dbgf.s.pGuestRegSet
+                     : pVM->aCpus[idCpu].dbgf.s.pHyperRegSet;
+    if (RT_LIKELY(pSet))
+    {
+        /*
+         * Look up the register and get the register value.
+         */
+        if (RT_LIKELY(pSet->cDescs > (size_t)enmReg))
+        {
+            PCDBGFREGDESC pDesc = &pSet->paDescs[enmReg];
+
+			DBGFREGVAL mask;
+			memset(&mask, -1, sizeof(mask));
+
+			rc = pDesc->pfnSet(pSet->uUserArg.pv, pDesc, pValue, &mask);
+            if (RT_SUCCESS(rc))
+            {
+                /*
+                 * Do the cast if the desired return type doesn't match what
+                 * the getter returned.
+                 */
+                if (pDesc->enmType == enmType)
+                    rc = VINF_SUCCESS;
+                else
+                    rc = dbgfR3RegValCast(pValue, enmType, pDesc->enmType);
+            }
+        }
+        else
+            rc = VERR_DBGF_REGISTER_NOT_FOUND;
+    }
+    else
+        rc = VERR_INVALID_CPU_ID;
+
+    DBGF_REG_DB_UNLOCK_READ(pVM);
+    return rc;
+}
 
 VMMR3DECL(int) DBGFR3RegNmSet(PVM pVM, VMCPUID idDefCpu, const char *pszReg, PCDBGFREGVAL pValue, DBGFREGVALTYPE enmType)
 {
-    return VERR_NOT_IMPLEMENTED;
+	VMCPUID idCpu = idDefCpu;
+
+	PCDBGFREGLOOKUP pLookupRec = dbgfR3RegResolve(pVM, idDefCpu, pszReg, true);
+	if (!pLookupRec)
+		return VERR_DBGF_REGISTER_NOT_FOUND;
+
+	DBGFREG enmReg = pLookupRec->pDesc->enmReg;
+	AssertMsgReturn(enmReg >= DBGFREG_AL && enmReg <= DBGFREG_END, ("%d\n", enmReg), VERR_INVALID_PARAMETER);
+
+	bool const fGuestRegs = !(idCpu & DBGFREG_HYPER_VMCPUID);
+	idCpu &= ~DBGFREG_HYPER_VMCPUID;
+	AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID);
+
+	return VMR3ReqPriorityCallWait(pVM, idCpu, (PFNRT)dbgfR3RegCpuSetWorkerOnCpu, 6,
+		pVM, idCpu, enmReg, enmType, fGuestRegs, pValue);
 }
 
 
