Index: /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 78111)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 78112)
@@ -3500,5 +3500,7 @@
         return setError(E_INVALIDARG, tr("No directory to remove recursively specified"));
 
-    uint32_t fFlags = DIRREMOVEREC_FLAG_NONE;
+    /* By default only delete empty directory structures, e.g. the operation will abort if there are
+     * directories which are not empty. */
+    uint32_t fFlags = DIRREMOVEREC_FLAG_RECURSIVE;
     if (aFlags.size())
     {
@@ -3511,9 +3513,9 @@
 
                 case DirectoryRemoveRecFlag_ContentAndDir:
-                    fFlags = DIRREMOVEREC_FLAG_RECURSIVE | DIRREMOVEREC_FLAG_CONTENT_AND_DIR;
+                    fFlags |= DIRREMOVEREC_FLAG_CONTENT_AND_DIR;
                     break;
 
                 case DirectoryRemoveRecFlag_ContentOnly:
-                    fFlags = DIRREMOVEREC_FLAG_RECURSIVE | DIRREMOVEREC_FLAG_CONTENT_ONLY;
+                    fFlags |= DIRREMOVEREC_FLAG_CONTENT_ONLY;
                     break;
 
