diff --git a/menuselect/Makefile b/menuselect/Makefile
index c2c9373f4f37ae50e9605e211e70d35c6493f99a..d949efd5597d9a5a1bfaa369580d207f12f0c800 100644
--- a/menuselect/Makefile
+++ b/menuselect/Makefile
@@ -24,6 +24,14 @@ endif
 OBJS:=menuselect.o strcompat.o
 CFLAGS+=-g -D_GNU_SOURCE -Wall
 
+ifneq ($(findstring dragonfly,$(OSARCH)),)
+  CFLAGS += -isystem /usr/local/include
+else ifneq ($(findstring netbsd,$(OSARCH)),)
+  CFLAGS += -isystem /usr/pkg/include
+else ifneq ($(findstring bsd,$(OSARCH)),)
+  CFLAGS += -isystem /usr/local/include
+endif
+
 ifeq ($(MENUSELECT_DEBUG),yes)
   CFLAGS += -DMENUSELECT_DEBUG
 endif
diff --git a/menuselect/autoconfig.h.in b/menuselect/autoconfig.h.in
index 3e1e189902140151edb655c5f4fad239d3367d8e..f1745516b7f2a07e96beefe716989ee3e04403a9 100644
--- a/menuselect/autoconfig.h.in
+++ b/menuselect/autoconfig.h.in
@@ -3,10 +3,6 @@
 #ifndef MENUSELECT_AUTOCONFIG_H
 #define MENUSELECT_AUTOCONFIG_H
 
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
 
 /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
    systems. This function is required for `alloca.c' support on those systems.
diff --git a/menuselect/configure b/menuselect/configure
index a0aa10928e6fe4ddb9a18173b1c15aaf6f557018..7cbe477569fb060aae4caa7067fac399f0008173 100755
--- a/menuselect/configure
+++ b/menuselect/configure
@@ -2320,33 +2320,18 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 HOST_OS=${host_os}
 
 
-PBX_WINARCH=0
 case "${host_os}" in
-     freebsd*)
-     OSARCH=FreeBSD
+     *dragonfly*)
+     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
+     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
      ;;
-     netbsd*)
-     OSARCH=NetBSD
+     *netbsd*)
+     CPPFLAGS="${CPPFLAGS} -I/usr/pkg/include"
+     LDFLAGS="${LDFLAGS} -L/usr/pkg/lib"
      ;;
-     openbsd*)
-     OSARCH=OpenBSD
-     ;;
-     solaris*)
-     OSARCH=SunOS
-     ;;
-     mingw32)
-     OSARCH=mingw32
-     PBX_WINARCH=1
-     ;;
-     cygwin)
-     OSARCH=cygwin
-     PBX_WINARCH=1
-     ;;
-     linux-gnueabi)
-     OSARCH=linux-gnu
-     ;;
-     *)
-     OSARCH=${host_os}
+     *bsd*)
+     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
+     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
      ;;
 esac
 
diff --git a/menuselect/configure.ac b/menuselect/configure.ac
index 2dd4ed6521aa463ee46451dd9333cfca5d562bc9..4a2d0acc29f498bcccdac0d2a6d2a400d325d8f9 100644
--- a/menuselect/configure.ac
+++ b/menuselect/configure.ac
@@ -1,5 +1,3 @@
-# Process this file with autoconf to produce a configure script.
-
 AC_PREREQ(2.59)
 
 m4_define([MENUSELECT_VERSION],
@@ -16,49 +14,29 @@ AC_CONFIG_HEADER(autoconfig.h)
 
 AC_COPYRIGHT("Menuselect")
 
-AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 
 HOST_OS=${host_os}
 AC_SUBST(HOST_OS)
 
-PBX_WINARCH=0
 case "${host_os}" in
-     freebsd*)
-     OSARCH=FreeBSD
-     ;;
-     netbsd*)
-     OSARCH=NetBSD
-     ;;
-     openbsd*)
-     OSARCH=OpenBSD
-     ;;
-     solaris*)
-     OSARCH=SunOS
+     *dragonfly*)
+     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
+     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
      ;;
-     mingw32)
-     OSARCH=mingw32
-     PBX_WINARCH=1
+     *netbsd*)
+     CPPFLAGS="${CPPFLAGS} -I/usr/pkg/include"
+     LDFLAGS="${LDFLAGS} -L/usr/pkg/lib"
      ;;
-     cygwin)
-     OSARCH=cygwin
-     PBX_WINARCH=1
-     ;;
-     linux-gnueabi)
-     OSARCH=linux-gnu
-     ;;
-     *)
-     OSARCH=${host_os}
+     *bsd*)
+     CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
+     LDFLAGS="${LDFLAGS} -L/usr/local/lib"
      ;;
 esac
 
 AH_TOP(
 #ifndef MENUSELECT_AUTOCONFIG_H
 #define MENUSELECT_AUTOCONFIG_H
-
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
 )
 
 AH_BOTTOM([#endif])