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