diff --git a/src/strings.c b/src/strings.c
index ef0282a..566f4da 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -125,6 +125,15 @@
 }
 
 /*
+ * Return TRUE when 'shell' has "fish" in the tail.
+ */
+    int
+fish_like_shell(void)
+{
+    return (strstr((char *)gettail(p_sh), "fish") != NULL);
+}
+
+/*
  * Escape "string" for use as a shell argument with system().
  * This uses single quotes, except when we know we need to use double quotes
  * (MS-DOS and MS-Windows not using PowerShell and without 'shellslash' set).
@@ -145,6 +154,7 @@
     char_u	*escaped_string;
     int		l;
     int		csh_like;
+    int		fish_like;
     char_u	*shname;
     int		powershell;
 # ifdef MSWIN
@@ -157,6 +167,10 @@
     // Csh also needs to have "\n" escaped twice when do_special is set.
     csh_like = csh_like_shell();
 
+    // Fish shell uses '\' as an escape character within single quotes, so '\'
+    // itself must be escaped to get a literal '\'.
+    fish_like = fish_like_shell();
+
     // PowerShell uses it's own version for quoting single quotes
     shname = gettail(p_sh);
     powershell = strstr((char *)shname, "pwsh") != NULL;
@@ -197,6 +211,8 @@
 	    ++length;			// insert backslash
 	    p += l - 1;
 	}
+	if (*p == '\\' && fish_like)
+	    ++length;			// insert backslash
     }
 
     // Allocate memory for the result and fill it.
@@ -261,6 +277,11 @@
 		    *d++ = *p++;
 		continue;
 	    }
+	    if (*p == '\\' && fish_like)
+	    {
+		*d++ = '\\';
+		*d++ = *p++;
+	    }
 
 	    MB_COPY_CHAR(p, d);
 	}
