diff --git a/src/pprint.c b/src/pprint.c
index 6a19a1d81799874b80046820acf49cf72b7f708f..145bf5237ae98e7db240aa1540bf8b242801edd1 100644
--- a/src/pprint.c
+++ b/src/pprint.c
@@ -35,7 +35,9 @@ static void pprint_bytes(FILE *stream, const uint8_t *bs, size_t len)
     fprintf(stream, "\"");
     for (size_t i = 0; i < len; i++) {
       uint8_t c = bs[i];
-      if (c >= 0x20 && c <= 0x7e)
+      if (c == '"' || c == '\\')
+        fprintf(stream, "\\%c", c);
+      else if (c >= 0x20 && c <= 0x7e)
         fputc(c, stream);
       else
         fprintf(stream, "\\u00%02hhx", c);