diff --git a/CHANGES.txt b/CHANGES.txt
index 862d9e6..d240afa 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -88,6 +88,8 @@
  
 BUG FIXES
 
+PIG-5362: Parameter substitution of shell cmd results doesn't handle backslash (wlauer via rohini)
+
 PIG-5355: Negative progress report by HBaseTableRecordReader (satishsaley via knoguchi)
 
 PIG-5341: PigStorage with -tagFile/-tagPath produces incorrect results with column pruning (knoguchi)
diff --git a/src/org/apache/pig/tools/parameters/PreprocessorContext.java b/src/org/apache/pig/tools/parameters/PreprocessorContext.java
index 2d61a3c..f44c645 100644
--- a/src/org/apache/pig/tools/parameters/PreprocessorContext.java
+++ b/src/org/apache/pig/tools/parameters/PreprocessorContext.java
@@ -352,9 +352,7 @@
                     throw new ParameterSubstitutionException(message);
                 }
                 val = paramval_get(key);
-                if (val.contains("$")) {
-                    val = val.replaceAll("(?<!\\\\)\\$", "\\\\\\$");
-                }
+                val = Matcher.quoteReplacement(val);
                 replaced_line = replaced_line.replaceFirst("\\$\\{"+key+"\\}", val);
             }
         }
@@ -379,9 +377,7 @@
                     throw new ParameterSubstitutionException(message);
                 }
                 val = paramval_get(key);
-                if (val.contains("$")) {
-                    val = val.replaceAll("(?<!\\\\)\\$", "\\\\\\$");
-                }
+                val = Matcher.quoteReplacement(val);
                 replaced_line = replaced_line.replaceFirst("\\$"+key, val);
             }
         }
diff --git a/test/org/apache/pig/tools/parameters/TestPreprocessorContext.java b/test/org/apache/pig/tools/parameters/TestPreprocessorContext.java
index f6aea7c..13f75c5 100644
--- a/test/org/apache/pig/tools/parameters/TestPreprocessorContext.java
+++ b/test/org/apache/pig/tools/parameters/TestPreprocessorContext.java
@@ -66,4 +66,15 @@
             );
         }
     }
+    
+    @Test
+    public void testEscaping() throws ParameterSubstitutionException, FrontendException {
+        PreprocessorContext ctx = new PreprocessorContext(0);
+        // quote argument to echo so that the shell doesn't treat the backslash as an escape and consume it
+        String cmd = "echo '$\\stuff'";
+        ctx.processShellCmd("some_value", "`" + cmd + "`");
+
+        String subVal = ctx.substitute("$some_value");
+        assertEquals("$\\stuff", subVal);
+    }
 }
