diff --git a/src/arbits/slbt_archive_dlsyms.c b/src/arbits/slbt_archive_dlsyms.c
index e75ee3c..10201b4 100644
--- a/src/arbits/slbt_archive_dlsyms.c
+++ b/src/arbits/slbt_archive_dlsyms.c
@@ -274,6 +274,11 @@ static int slbt_ar_output_dlsyms_impl(
 	if (slbt_dprintf(fdout,dlsymfmt,symname,"","0") < 0)
 		return SLBT_NESTED_ERROR(dctx);
 
+	/* (-dlopen force) */
+	if (!arctxv[0]->meta->a_memberv)
+		if (!strcmp(*arctxv[0]->path,"@PROGRAM@"))
+			arctxv++;
+
 	/* at long last */
 	for (parctx=arctxv; *parctx; parctx++) {
 		actx = *parctx;