diff --git a/testsuite/sexp-format-test.c b/testsuite/sexp-format-test.c
index e071534609181542c5b665d209392b3dd66f4627..4bca42fefb19eca11abc216e1986f5bcd0c34c1f 100644
--- a/testsuite/sexp-format-test.c
+++ b/testsuite/sexp-format-test.c
@@ -13,11 +13,11 @@ test_main(void)
     const uint8_t e[] = "(3:foo(3:bar17:xxxxxxxxxxxxxxxxx))";
 
     nettle_buffer_init(&buffer);
-    ASSERT(sexp_format(&buffer, "(%z(%z%z))",
+    ASSERT(sexp_format(&buffer, "(%0s(%0s%0s))",
 		       "foo", "bar", "xxxxxxxxxxxxxxxxx")
 	   == strlen(e));
     
-    ASSERT(sexp_format(NULL, "(%z(%z%z))",
+    ASSERT(sexp_format(NULL, "(%0s(%0s%0s))",
 		       "foo", "bar", "xxxxxxxxxxxxxxxxx")
 	   == strlen(e));
     
@@ -28,11 +28,11 @@ test_main(void)
     const uint8_t e[] = "{KDM6Zm9vKDM6YmFyMTc6eHh4eHh4eHh4eHh4eHh4eHgpKQ==}";
 
     nettle_buffer_init(&buffer);
-    ASSERT(sexp_transport_format(&buffer, "(%z(%z%z))",
+    ASSERT(sexp_transport_format(&buffer, "(%0s(%0s%0s))",
 		       "foo", "bar", "xxxxxxxxxxxxxxxxx")
 	   == strlen(e));
     
-    ASSERT(sexp_transport_format(NULL, "(%z(%z%z))",
+    ASSERT(sexp_transport_format(NULL, "(%0s(%0s%0s))",
 				 "foo", "bar", "xxxxxxxxxxxxxxxxx")
 	   == strlen(e));
     
@@ -55,14 +55,25 @@ test_main(void)
     const uint8_t e[] = "(3:foo(4:bar))";
     
     nettle_buffer_init(&buffer);  
-    ASSERT(sexp_format(&buffer, "(%z%l)",
+    ASSERT(sexp_format(&buffer, "(%0s%l)",
 		       "foo", 7, "(4:bar)")
 	   == strlen(e));
     
     ASSERT(buffer.size == strlen(e));
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
   }
-    
+
+  {
+    const uint8_t e[] = "([1:t]3:foo3:bar[6:gazonk]3:baz1:q)";
+
+    nettle_buffer_init(&buffer);
+    ASSERT(sexp_format(&buffer, "(%0t%0s%0s%0t%0s%0t%0s)",
+		       "t", "foo", "bar", "gazonk", "baz", NULL, "q")
+	   == strlen(e));
+
+    ASSERT(MEMEQ(buffer.size, buffer.contents, e));
+  }
+  
 #if HAVE_LIBGMP
   {
     mpz_t x;
@@ -79,11 +90,11 @@ test_main(void)
     nettle_mpz_init_set_str_256_u(z, 12, "\x81""abcdefghijk");
     nettle_buffer_init(&buffer);
 
-    ASSERT(sexp_format(&buffer, "(%z(%z%b%b%b))",
+    ASSERT(sexp_format(&buffer, "(%0s(%0s%b%b%b))",
 		     "foo", "bar", x, y, z)
 	   == LLENGTH(e));
 
-    ASSERT(sexp_format(NULL, "(%z(%z%b%b%b))",
+    ASSERT(sexp_format(NULL, "(%0s(%0s%b%b%b))",
 		     "foo", "bar", x, y, z)
 	   == LLENGTH(e));