diff --git a/test/utility.js b/test/utility.js
index e49d5e27f..c609dc2c3 100644
--- a/test/utility.js
+++ b/test/utility.js
@@ -63,6 +63,10 @@ $(document).ready(function() {
result = fancyTemplate({people : {moe : "Moe", larry : "Larry", curly : "Curly"}});
equals(result, "
", 'can run arbitrary javascript in templates');
+ var escapedCharsInJavascriptTemplate = _.template("<% _.each(numbers.split('\\n'), function(item) { %>- <%= item %>
<% }) %>
");
+ result = escapedCharsInJavascriptTemplate({numbers: "one\ntwo\nthree\nfour"});
+ equals(result, "", 'Can use escaped characters (e.g. \\n) in Javascript')
+
var namespaceCollisionTemplate = _.template("<%= pageCount %> <%= thumbnails[pageCount] %> <% _.each(thumbnails, function(p) { %>\">
<% }); %>");
result = namespaceCollisionTemplate({
pageCount: 3,
diff --git a/underscore.js b/underscore.js
index fb055a454..9cf1de923 100644
--- a/underscore.js
+++ b/underscore.js
@@ -910,7 +910,8 @@
})
.replace(c.evaluate || null, function(match, code) {
return "');" + code.replace(/\\'/g, "'")
- .replace(/[\r\n\t]/g, ' ') + ";__p.push('";
+ .replace(/[\r\n\t]/g, ' ')
+ .replace(/\\\\/g, '\\') + ";__p.push('";
})
.replace(/\r/g, '\\r')
.replace(/\n/g, '\\n')