diff --git a/testsuite/sexp-format-test.c b/testsuite/sexp-format-test.c
index 65039859570e85b7aa2305d630c94992018ef9d5..e071534609181542c5b665d209392b3dd66f4627 100644
--- a/testsuite/sexp-format-test.c
+++ b/testsuite/sexp-format-test.c
@@ -40,14 +40,14 @@ test_main(void)
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
   }
   {
-    const uint8_t e[] = "1:a2:bc3:def4:ghij";
+    const uint8_t e[] = "1:\0""1:a2:bc3:def4:ghij5:\x00\xDE\xAD\xBE\xEF";
 
     nettle_buffer_init(&buffer);  
-    ASSERT(sexp_format(&buffer, "%i%i%i%i",
-		       0x61, 0x6263, 0x646566, 0x6768696a)
-	   == strlen(e));
+    ASSERT(sexp_format(&buffer, "%i%i%i%i%i%i",
+		       0, 0x61, 0x6263, 0x646566, 0x6768696a, 0xDEADBEEF)
+	   == LLENGTH(e));
     
-    ASSERT(buffer.size == strlen(e));
+    ASSERT(buffer.size == LLENGTH(e));
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
   }
 
@@ -66,22 +66,28 @@ test_main(void)
 #if HAVE_LIBGMP
   {
     mpz_t x;
-    const uint8_t e[] = "(3:foo(3:bar11:abcdefghijk))";
+    mpz_t y;
+    mpz_t z;
+    
+    const uint8_t e[] =
+      "(3:foo(3:bar1:\xff""11:abcdefghijk13:\0\x81""abcdefghijk))";
 
     nettle_buffer_clear(&buffer);
-    
-    nettle_mpz_init_set_str_256(x, 11, "abcdefghijk");
+
+    mpz_init_set_si(x, -1);
+    nettle_mpz_init_set_str_256_u(y, 11, "abcdefghijk");
+    nettle_mpz_init_set_str_256_u(z, 12, "\x81""abcdefghijk");
     nettle_buffer_init(&buffer);
 
-    ASSERT(sexp_format(&buffer, "(%z(%z%b))",
-		     "foo", "bar", x)
-	   == strlen(e));
+    ASSERT(sexp_format(&buffer, "(%z(%z%b%b%b))",
+		     "foo", "bar", x, y, z)
+	   == LLENGTH(e));
 
-    ASSERT(sexp_format(NULL, "(%z(%z%b))",
-		     "foo", "bar", x)
-	   == strlen(e));
+    ASSERT(sexp_format(NULL, "(%z(%z%b%b%b))",
+		     "foo", "bar", x, y, z)
+	   == LLENGTH(e));
     
-    ASSERT(buffer.size == strlen(e));
+    ASSERT(buffer.size == LLENGTH(e));
     ASSERT(MEMEQ(buffer.size, buffer.contents, e));
 
     nettle_buffer_clear(&buffer);
@@ -91,5 +97,3 @@ test_main(void)
 
   SUCCESS();
 }
-
-