Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp	(revision 33840)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp	(revision 33841)
@@ -586,18 +586,16 @@
         return VERR_NO_MEMORY;
 
-    pNode->pszSourcePath = NULL;
-    pNode->pszDestPath = NULL;
-    if (RT_SUCCESS(RTStrAAppend(&pNode->pszSourcePath, pszFileSource)))
-    {
-        if (RT_SUCCESS(RTStrAAppend(&pNode->pszDestPath, pszFileDest)))
-        {
-            pNode->Node.pPrev = NULL;
-            pNode->Node.pNext = NULL;
-            RTListAppend(pList, &pNode->Node);
-            return VINF_SUCCESS;
-        }
+    pNode->pszSourcePath = RTStrDup(pszFileSource);
+    pNode->pszDestPath = RTStrDup(pszFileDest);
+    if (   !pNode->pszSourcePath
+        || !pNode->pszDestPath)
+    {
         return VERR_NO_MEMORY;
     }
-    return VERR_NO_MEMORY;
+    
+    pNode->Node.pPrev = NULL;
+    pNode->Node.pNext = NULL;
+    RTListAppend(pList, &pNode->Node);
+    return VINF_SUCCESS;
 }
 
@@ -778,8 +776,21 @@
             if (pszDestAbs)
             {
-                RTPathStripFilename(pszDestAbs);
-                rc = RTStrAAppend(&pszDestAbs, RTPATH_SLASH_STR);
-                if (RT_SUCCESS(rc))
+                /* Do we have a trailing slash for the destination?
+                 * Then this is a directory ... */
+                size_t cch = strlen(pszDestAbs);
+                if (    cch > 1
+                    && (   RTPATH_IS_SLASH(pszDestAbs[cch - 1])
+                        || RTPATH_IS_SLASH(pszDestAbs[cch - 2])
+                       )
+                   )
+                {
                     rc = RTStrAAppend(&pszDestAbs, RTPathFilename(pszSourceAbs));
+                }
+                else
+                {
+                    /* Since the desetination seems not to be a directory,
+                     * we assume that this is the absolute path to the destination
+                     * file -> nothing to do here ... */
+                }
 
                 if (RT_SUCCESS(rc))
@@ -1173,5 +1184,5 @@
                     break;
 
-                case VERR_PATH_NOT_FOUND:
+                case VERR_FILE_NOT_FOUND:
                     RTMsgError("Source path \"%s\" not found!\n", Utf8Source.c_str());
                     break;
