diff --git a/src/svalue.c b/src/svalue.c
index be0e092c051642e1f59704882a6fc80ebe2107d7..2e34b6270f2b17a3936eae4392b185ec3357d2d8 100644
--- a/src/svalue.c
+++ b/src/svalue.c
@@ -661,6 +661,40 @@ void describe_svalue(struct svalue *s,int indent,struct processing *p)
         {
           switch(s->u.string->str[i])
           {
+	  case '\n':
+	    my_putchar('\\');
+	    my_putchar('n');
+	    break;
+
+	  case '\t':
+	    my_putchar('\\');
+	    my_putchar('t');
+	    break;
+
+	  case '\b':
+	    my_putchar('\\');
+	    my_putchar('b');
+	    break;
+
+	  case '\r':
+	    my_putchar('\\');
+	    my_putchar('r');
+	    break;
+	    
+	  case 0:
+	  case 1:
+	  case 2:
+	  case 3:
+	  case 4:
+	  case 5:
+	  case 6:
+	  case 7:
+	    my_putchar('\\');
+	    my_putchar('0');
+	    my_putchar('0');
+	    my_putchar('0' + s->u.string->str[i]);
+	    break;
+
             case '"':
             case '\\':
               my_putchar('\\');