diff --git a/pymbolic/mapper/stringifier.py b/pymbolic/mapper/stringifier.py
index 1311d21eb786b3e0e2c5007e10df6215982a308a..9c1149a972b772648375e6ce6b675d0e9fe4c033 100644
--- a/pymbolic/mapper/stringifier.py
+++ b/pymbolic/mapper/stringifier.py
@@ -228,6 +228,19 @@ class StringifyMapper(pymbolic.mapper.RecursiveMapper):
 
         return "[%s]{%s}" % (self.rec(expr.child, PREC_NONE), substs)
 
+    def map_slice(self, expr, enclosing_prec):
+        children = []
+        for child in expr.children:
+            if child is None:
+                children.append("")
+            else:
+                children.append(self.rec(child, PREC_NONE))
+
+        return self.parenthesize_if_needed(
+                self.join(":", children),
+                enclosing_prec, PREC_NONE)
+
+
     def __call__(self, expr, prec=PREC_NONE):
         return pymbolic.mapper.RecursiveMapper.__call__(self, expr, prec)
 
diff --git a/test/test_pymbolic.py b/test/test_pymbolic.py
index 09f74cc0df6bda34da4aee9d55d13097e20f28f6..3866008c19059f374c5c182f29b5ac0e38fc9b87 100644
--- a/test/test_pymbolic.py
+++ b/test/test_pymbolic.py
@@ -154,6 +154,8 @@ def test_parser():
     print repr(parse(":5:1"))
     print repr(parse("3:5:1"))
 
+    print parse("3::1")
+