Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestProp.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestProp.cpp	(revision 39820)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestProp.cpp	(revision 39821)
@@ -160,6 +160,5 @@
 
         if (!pszValue && !pszFlags)
-            CHECK_ERROR(machine, SetGuestPropertyValue(Bstr(pszName).raw(),
-                                                       Bstr().raw()));
+            CHECK_ERROR(machine, DeleteGuestProperty(Bstr(pszName).raw()));
         else if (!pszFlags)
             CHECK_ERROR(machine, SetGuestPropertyValue(Bstr(pszName).raw(),
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 39820)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 39821)
@@ -5886,4 +5886,20 @@
     </method>
 
+    <method name="deleteGuestProperty" const="yes">
+      <desc>
+        Deletes an entry from the machine's guest property store.
+
+        <result name="VBOX_E_INVALID_VM_STATE">
+          Machine session is not open.
+        </result>
+
+      </desc>
+      <param name="name" type="wstring" dir="in">
+        <desc>
+          The name of the property to delete.
+        </desc>
+      </param>
+    </method>
+
     <method name="enumerateGuestProperties" const="yes">
       <desc>
Index: /trunk/src/VBox/Main/include/MachineImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/MachineImpl.h	(revision 39820)
+++ /trunk/src/VBox/Main/include/MachineImpl.h	(revision 39821)
@@ -517,4 +517,5 @@
     STDMETHOD(SetGuestProperty)(IN_BSTR aName, IN_BSTR aValue, IN_BSTR aFlags);
     STDMETHOD(SetGuestPropertyValue)(IN_BSTR aName, IN_BSTR aValue);
+    STDMETHOD(DeleteGuestProperty)(IN_BSTR aName);
     STDMETHOD(EnumerateGuestProperties)(IN_BSTR aPattern, ComSafeArrayOut(BSTR, aNames), ComSafeArrayOut(BSTR, aValues), ComSafeArrayOut(LONG64, aTimestamps), ComSafeArrayOut(BSTR, aFlags));
     STDMETHOD(GetMediumAttachmentsOfController)(IN_BSTR aName, ComSafeArrayOut(IMediumAttachment *, aAttachments));
Index: /trunk/src/VBox/Main/src-server/MachineImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/MachineImpl.cpp	(revision 39820)
+++ /trunk/src/VBox/Main/src-server/MachineImpl.cpp	(revision 39821)
@@ -5292,5 +5292,5 @@
         if (found && SUCCEEDED(rc))
         {
-            if (*aValue)
+            if (aValue)
             {
                 RTTIMESPEC time;
@@ -5302,5 +5302,5 @@
             }
         }
-        else if (SUCCEEDED(rc) && *aValue)
+        else if (SUCCEEDED(rc) && aValue)
         {
             RTTIMESPEC time;
@@ -5396,4 +5396,9 @@
 {
     return SetGuestProperty(aName, aValue, NULL);
+}
+
+STDMETHODIMP Machine::DeleteGuestProperty(IN_BSTR aName)
+{
+    return SetGuestProperty(aName, NULL, NULL);
 }
 
