diff --git a/interpolate.cabal b/interpolate.cabal
--- a/interpolate.cabal
+++ b/interpolate.cabal
@@ -1,5 +1,5 @@
 name:             interpolate
-version:          0.0.2
+version:          0.0.3
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2013 Simon Hengel
diff --git a/src/Data/String/Interpolate/Parse.hs b/src/Data/String/Interpolate/Parse.hs
--- a/src/Data/String/Interpolate/Parse.hs
+++ b/src/Data/String/Interpolate/Parse.hs
@@ -7,12 +7,14 @@
 parseNodes :: String -> [Node]
 parseNodes = go ""
   where
+    go :: String -> String -> [Node]
     go acc input = case input of
       ""  -> [(lit . reverse) acc]
+      '\\':x:xs -> go (x:'\\':acc) xs
       '#':'{':xs -> case span (/= '}') xs of
         (ys, _:zs) -> (lit . reverse) acc : Expression ys : go "" zs
-        (_, "") -> [(Literal . unescape) (reverse acc ++ input)]
+        (_, "") -> [lit (reverse acc ++ input)]
       x:xs -> go (x:acc) xs
 
     lit :: String -> Node
-    lit acc = (Literal . unescape) acc
+    lit = Literal . unescape
diff --git a/src/Data/String/Interpolate/Util.hs b/src/Data/String/Interpolate/Util.hs
--- a/src/Data/String/Interpolate/Util.hs
+++ b/src/Data/String/Interpolate/Util.hs
@@ -28,6 +28,7 @@
       '\\' : x : xs | isDigit x -> case span isDigit xs of
         (ys, zs) -> (chr . read $ x:ys) : go zs
       '\\' : input_ -> case input_ of
+        '\\' : xs -> '\\' : go xs
         'a' : xs -> '\a' : go xs
         'b' : xs -> '\b' : go xs
         'f' : xs -> '\f' : go xs
