Blob Blame History Raw
diff --git a/src/file.c b/src/file.c
index d7eaa46..5c45dcf 100644
--- a/src/file.c
+++ b/src/file.c
@@ -2066,28 +2066,21 @@ panel_operate (void *source_panel, FileOperation operation, gboolean force_singl
             dest_dir = other_panel->cwd;
         else
             dest_dir = panel->cwd;
-
         /*
          * Add trailing backslash only when do non-local ops.
          * It saves user from occasional file renames (when destination
          * dir is deleted)
          */
-        if (force_single || dest_dir[0] == '\0')
-        {
-            /* just copy */
-            dest_dir_ = g_strdup (dest_dir);
-        }
-        else if (single_entry)
+        if (!force_single && dest_dir[0] != '\0' && dest_dir[strlen (dest_dir) - 1] != PATH_SEP)
         {
-            /* add filename to dest path */
-            dest_dir_ = g_build_filename (dest_dir, source, (char *) NULL);
+            /* add trailing separator */
+            dest_dir_ = g_strconcat (dest_dir, PATH_SEP_STR, (char *) NULL);
         }
         else
         {
-            /* add trailing separator */
-            dest_dir_ = g_strconcat (dest_dir, PATH_SEP_STR, (char *) NULL);
+            /* just copy */
+            dest_dir_ = g_strdup (dest_dir);
         }
-
         if (dest_dir_ == NULL)
         {
             file_op_total_context_destroy (tctx);