auto import from //branches/cupcake/...@127101
diff --git a/libc/unistd/abort.c b/libc/unistd/abort.c
index 3291287..a02beba 100644
--- a/libc/unistd/abort.c
+++ b/libc/unistd/abort.c
@@ -56,9 +56,11 @@
 	if (cleanup_called == 0) {
 		while (p != NULL && p->next != NULL)
 			p = p->next;
-		if (p != NULL && p->fns[0] != NULL) {
+		/* the check for fn_dso == NULL is mostly paranoia */
+		if (p != NULL && p->fns[0].fn_dso == NULL &&
+		    p->fns[0].fn_ptr.std_func != NULL) {
 			cleanup_called = 1;
-			(*p->fns[0])();
+			(*p->fns[0].fn_ptr.std_func)();
 		}
 	}