Index: /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBaseOci.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBaseOci.cpp	(revision 87302)
+++ /trunk/src/VBox/Runtime/common/rest/RTCRestClientApiBaseOci.cpp	(revision 87303)
@@ -144,13 +144,17 @@
     if (RT_SUCCESS(rc))
     {
-        bool fHasBody = a_rStrXmitBody.isNotEmpty() || (a_fFlags & kDoCall_RequireBody);
+        bool fHasBody
+            =  a_rStrXmitBody.isNotEmpty()
+               /* but sometimes we need an empty body signed too */
+            || (a_fFlags & kDoCall_RequireBody)
+            || a_enmHttpMethod == RTHTTPMETHOD_POST
+            || a_enmHttpMethod == RTHTTPMETHOD_PUT;
 
-        if (   fHasBody
-            || a_enmHttpMethod == RTHTTPMETHOD_POST
-            || a_enmHttpMethod == RTHTTPMETHOD_PUT)
+        if (fHasBody)
+        {
             rc = ociSignRequestEnsureContentLength(a_hHttp, a_rStrXmitBody.length());
-        if (   RT_SUCCESS(rc)
-            && fHasBody)
-            rc = ociSignRequestEnsureXContentSha256(a_hHttp, a_rStrXmitBody.c_str(), a_rStrXmitBody.length());
+            if (RT_SUCCESS(rc))
+                rc = ociSignRequestEnsureXContentSha256(a_hHttp, a_rStrXmitBody.c_str(), a_rStrXmitBody.length());
+        }
         if (RT_SUCCESS(rc))
             rc = ociSignRequestEnsureDateOrXDate(a_hHttp);
