diff --git a/src/arbits/slbt_archive_dlsyms.c b/src/arbits/slbt_archive_dlsyms.c
index 5fd007c..39555bd 100644
--- a/src/arbits/slbt_archive_dlsyms.c
+++ b/src/arbits/slbt_archive_dlsyms.c
@@ -309,6 +309,10 @@ static int slbt_ar_output_dlsyms_impl(
 			return SLBT_NESTED_ERROR(dctx);
 	}
 
+	/* null-terminate the vtable */
+	if (slbt_dprintf(fdout,"\n\t{%d,%*c%d}\n",0,len,' ',0) < 0)
+		return SLBT_NESTED_ERROR(mctx->dctx);
+
 	/* close vtable, wrap translation unit */
 	if (slbt_dprintf(fdout,
 			"};\n\n"