diff --git a/testsuite/base64-test.c b/testsuite/base64-test.c
index d266697006e3ec523b8ca23cc00a573bc03471fb..b4d0917c4f06e10277166ece2bea4ec93be7b8b8 100644
--- a/testsuite/base64-test.c
+++ b/testsuite/base64-test.c
@@ -32,16 +32,19 @@ test_main(void)
     /* Test overlapping areas */
     uint8_t buffer[] = "Helloxxxx";
     struct base64_decode_ctx ctx;
+    unsigned dst_length;
     
     ASSERT(BASE64_ENCODE_RAW_LENGTH(5) == 8);
     base64_encode_raw(buffer, 5, buffer);
     ASSERT(MEMEQ(9, buffer, "SGVsbG8=x"));
-    buffer[6] = '=';
 
     base64_decode_init(&ctx);
-    ASSERT(4 == base64_decode_update(&ctx, buffer, 8, buffer));
-    ASSERT(MEMEQ(9, buffer, "HellbG==x"));
-  }
+    dst_length = 8;
+    ASSERT(base64_decode_update(&ctx, &dst_length, buffer, 8, buffer));
+    ASSERT(dst_length == 5);
     
+    ASSERT(MEMEQ(9, buffer, "HelloG8=x"));
+  }
+  
   SUCCESS();
 }