--- iselect.c.orig	Thu Jun 11 08:50:50 1998
+++ iselect.c	Wed Mar 17 18:11:12 1999
@@ -63,8 +63,15 @@
 	}
 #ifndef __FreeBSD__
 	register_patterns = dlsym(handle, "register_patterns");
-#else
+#else /* FreeBSD */
+#include <osreldate.h>
+#    if __FreeBSD_version >= 300004
+/* in case of ELF */
+	register_patterns = dlsym(handle, "register_patterns");
+#    else
+/* a.out */
 	register_patterns = dlsym(handle, "_register_patterns");
+#    endif
 #endif
 	if ((error = dlerror()) != NULL) {
 		fprintf(stderr, "%s\n", error);
