Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp	(revision 36986)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp	(revision 36987)
@@ -69,4 +69,7 @@
 static volatile bool    g_fGuestCtrlCanceled = false;
 
+/**
+ * An entry for a source element, including an optional filter.
+ */
 typedef struct SOURCEFILEENTRY
 {
@@ -96,4 +99,7 @@
 typedef std::vector<SOURCEFILEENTRY> SOURCEVEC, *PSOURCEVEC;
 
+/**
+ * An entry for an element which needs to be copied to the guest.
+ */
 typedef struct DESTFILEENTRY
 {
@@ -101,4 +107,8 @@
     Utf8Str mFileName;
 } DESTFILEENTRY, *PDESTFILEENTRY;
+/*
+ * Map for holding destination entires, whereas the key is the destination
+ * directory and the mapped value is a vector holding all elements for this directoy.
+ */
 typedef std::map< Utf8Str, std::vector<DESTFILEENTRY> > DESTDIRMAP, *PDESTDIRMAP;
 typedef std::map< Utf8Str, std::vector<DESTFILEENTRY> >::iterator DESTDIRMAPITER, *PDESTDIRMAPITER;
@@ -990,7 +1000,5 @@
             rc = VERR_NO_MEMORY;
     }
-    /* @todo Skip creating empty directories (or directories where a file filter (e.g. *.dll)
-     * did not find any files to copy. Make this configurable later! */
-    else if (itDest->second.size())
+    else /* Create sub-directories, also empty ones. */
     {
         if (!RTStrAPrintf(&pszDestFinal, "%s/%s", pszDestRoot, itDest->first.c_str()))
