diff --git a/Make-common b/Make-common.dist
similarity index 98%
rename from Make-common
rename to Make-common.dist
index 8fabb11693..c880481571 100644
--- a/Make-common
+++ b/Make-common.dist
@@ -145,6 +145,11 @@ LDBMBACKEND?=-DLDBM_USE_NDBM
 LDBMINCLUDE?=
 LDBMLIB?=
 
+#undef these if you have SLEEPYCAT DB2 installed
+#LDBMBACKEND=-DLDBM_USE_DBBTREE -DHAVE_SLEEPYCAT_DB2
+#LDBMINCLUDE=-I/usr/local/include
+#LDBMLIB=-L/usr/local/lib -ldb
+
 # if you want to use a non-default threads package change the defines below
 # to one of:
 #	-DPOSIX_THREADS         (draft 10 or standard)
diff --git a/Make-common.um b/Make-common.um
deleted file mode 100644
index 6fa3121e69..0000000000
--- a/Make-common.um
+++ /dev/null
@@ -1,200 +0,0 @@
-#-----------------------------------------------------------------------------
-# Copyright (c) 1994 Regents of the University of Michigan.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms are permitted
-# provided that this notice is preserved and that due credit is given
-# to the University of Michigan at Ann Arbor. The name of the University
-# may not be used to endorse or promote products derived from this
-# software without specific prior written permission. This software
-# is provided ``as is'' without express or implied warranty.
-#
-#       LDAP common Make defines (included in all but top-level Makefile)
-#
-#-----------------------------------------------------------------------------
-
-#############################################################################
-## Edit the following variables to have appropriate values for your system ##
-#############################################################################
-
-#############################################################################
-## LDAP install paths                                                      ##
-#############################################################################
-#
-# by default, everything is installed below INSTROOT
-# servers, config files, etc. are put in ETCDIR
-# include files get put in INCLUDEDIR
-# libraries are put in LIBDIR
-# man pages are put under MANDIR
-# programs end-users will run are put in BINDIR
-#
-INSTROOT=/usr/local
-ETCDIR= $(INSTROOT)/etc
-INCLUDEDIR= $(INSTROOT)/include
-LIBDIR= $(INSTROOT)/lib
-MANDIR= $(INSTROOT)/man
-BINDIR= $(INSTROOT)/bin
-#
-# if you want things to run in a different directory from where they
-# are installed, set this accordingly (this path gets compiled into a
-# few binaries). otherwise, leave it alone.
-RUNTIMEETCDIR= $(ETCDIR)
-
-#############################################################################
-## General compiler options                                                ##
-#############################################################################
-# Passed to every compile (cc or gcc).  This is where you put -O or -g, etc.
-EXTRACFLAGS=-g
-# Passed to every link (ld).  Include -g here if you did in EXTRACFLAGS.
-EXTRALDFLAGS=-g
-
-#############################################################################
-## If you are NOT using Kerberos authentication, you can skip this section.##
-#############################################################################
-#
-# Otherwise, to enable kerberos authentication, uncomment KERBEROS (and
-# AFSKERBEROS if you are running the AFS version of kerberos).  Also
-# uncomment and change the various KRB* lines to point to where the
-# kerberos libraries and include files are installed at your site.
-#
-KERBEROS=-DKERBEROS
-AFSKERBEROS=-DAFSKERBEROS
-KRBINCLUDEFLAG	= -I/usr/local/kerberos/include
-KRBLIBFLAG	= -L/usr/local/kerberos/lib
-KRBLIBS		= -lkrb -ldes
-
-#############################################################################
-## ISODE is required ONLY to build the ldap <-> X.500 server (ldapd)       ##
-## If you don't want to build it, you can skip this section.               ##
-#############################################################################
-#
-# To build the ldap server, uncomment the HAVEISODE line,
-# and the section describing build settings for your version of isode.
-#
-HAVEISODE = yes
-# If you compiled ISODE with TURBO_DISK defined, uncomment this
-#ISODETURBOLIBS	= -lgdbm
-# uncomment these to have ldapd "pretty print" protocol elements w/debugging
-PEPSY_DUMP=-DPEPSY_DUMP
-PEPSY=/usr/local/ic/bin/pepsy
-# uncommment this line to have ldapd load PP syntax handlers
-# you'll also need to add -lpp to ISODEBASELIBS below
-#LDAP_USE_PP=-DLDAP_USE_PP
-# uncomment NO_SETPROCTITLE to have ldapd NOT change its title
-#NO_SETPROCTITLE=-DNOSETPROCTITLE
-#
-# ISODE Consortium release build settings
-# You should change the next line so that ICRELEASE matches the (integer)
-# version number of whatever IC release you have, e.g. 1, 2, or 3 and
-# also uncomment the next 5 lines.
-ICRELEASE=-DICRELEASE=2
-ISODEPACKAGE=-DISODEPACKAGE=IC
-ISODEINCLUDEFLAG= -I/usr/local/ic/include
-ISODELIBFLAG	= -L/usr/local/ic/lib
-ISODEBASELIBS	= -lisode
-#
-# Freely available ISODE 8.0 release build settings (uncomment the next 4 lines)
-#ISODEPACKAGE=-DISODEPACKAGE
-#ISODEINCLUDEFLAG= -I/usr/local/isode/include
-#ISODELIBFLAG	= -L/usr/local/isode/lib
-#ISODEBASELIBS	= -ldsap -lisode
-#
-# NEXOR ISODE release build settings (uncomment the next 4 lines)
-#ISODEPACKAGE=-DISODEPACKAGE=XT
-#ISODEINCLUDEFLAG= -I/usr/include/isode
-#ISODELIBFLAG	= -L/usr/local/lib -L/usr/sunlink/osi/lib
-#ISODEBASELIBS	= -lxtpp -lresolv -lxtdsap -lxtisode -losi
-
-#############################################################################
-## If you don't want to run slapd, skip this section.                      ##
-#############################################################################
-#
-# To build slapd (the stand-alone ldap daemon), uncomment the MAKESLAPD
-# line and select the SLAPD_BACKENDS you want to use. If you enable the
-# LDBM backend, also select one of the LDBM backends.
-MAKESLAPD= yes
-#
-# remove the defines for backends you don't want to enable 
-SLAPD_BACKENDS= -DLDAP_LDBM -DLDAP_SHELL -DLDAP_PASSWD
-#
-# If you have included -DLDAP_LDBM in the SLAPD_BACKENDS line you need
-# to specify which low-level database package to use.  There are
-# four choices: Berkeley db b-tree, Berkeley db hash, GNU dbm, or ndbm.
-#
-# berkeley db btree package
-LDBMBACKEND=-DLDBM_USE_DBBTREE
-LDBMINCLUDE=-I/usr/local/include
-LDBMLIB=-ldb
-# berkeley db hash package
-#LDBMBACKEND=-DLDBM_USE_DBHASH
-#LDBMINCLUDE=-I/usr/local/include
-#LDBMLIB=-ldb
-# gnu dbm (gdbm)
-#LDBMBACKEND=-DLDBM_USE_GDBM
-#LDBMINCLUDE=-I/usr/local/include
-#LDBMLIB=-lgdbm
-# standard unix ndbm
-#LDBMBACKEND=-DLDBM_USE_NDBM
-#
-# if you want to use a non-default threads package change these lines
-#THREADS=-DNO_THREADS
-#THREADSLIB=
-
-#############################################################################
-## The following options are used by the xax500 client.  If you haven't    ##
-## retrieved the xax500 source and dropped it into the "clients"           ##
-## directory, you can skip this section.                                   ##
-#############################################################################
-#
-# location of your X include files
-#XINCLUDES= -I/usr/local/X11/include
-#
-# location of your X libraries
-#XLIBDIRS=-L/usr/local/X11/lib
-#
-# include any extra X libraries you need here
-# the following works with sunos 4 and X11R5
-#XLIBS = $(XLIBDIRS) -lXm -lXt -lX11
-# the following has been known to work with Solaris 2.4 and X11R6
-#XLIBS = $(XLIBDIRS) -lXm -lXext -lSM -lICE -lXpm -lXt -lX11
-
-#############################################################################
-## If you don't want to do auto-translation of character sets, skip this   ##
-#############################################################################
-#
-# Otherwise, uncomment this line and set the following options.
-#STR_TRANSLATION=-DSTR_TRANSLATION
-# 
-# remove the defines for LDAP client library T.61 character translation
-# you do not need.  If you use LDAP_CHARSET_8859, replace the '1' in "88591"
-# with the number of the particular character set you use.  E.g., use "88594"
-# if you use the ISO 8859-4 chracter set.
-#LIBLDAP_CHARSETS=-DLDAP_CHARSET_8859="88591"
-# 
-# uncomment one these lines to enable automatic T.61 translation by default
-#LIBLDAP_DEF_CHARSET=-DLDAP_DEFAULT_CHARSET=LDAP_CHARSET_8859
-
-#############################################################################
-## General options                                                         ##
-#############################################################################
-# uncomment this line to enable debugging code (a good idea)
-LDAP_DEBUG=-DLDAP_DEBUG
-
-# uncomment this line to turn on a few U of Michigan specific things
-UOFM=-DUOFM
-
-# uncomment this line to delete a few printfs in the lber and ldap libraries.
-#NO_USERINTERFACE=-DNO_USERINTERFACE
-
-# uncomment this line to include Connectionless LDAP support
-CLDAP=-DCLDAP
-
-# uncomment this line to eliminate local caching support in the libldap
-#NO_CACHE=-DNO_CACHE
-
-# uncomment this line to enable support for LDAP referrals in libldap
-LDAP_REFERRALS=-DLDAP_REFERRALS
-
-# uncomment this line to use soundex for approximate matches in slapd.
-# the default is to use the metaphone algorithm.
-#PHONETIC=-DSOUNDEX
diff --git a/Makefile b/Makefile
index 3b313842d3..be002db16b 100644
--- a/Makefile
+++ b/Makefile
@@ -318,6 +318,16 @@ makeconfig:	.makefiles buildtools
 	echo "** Set platform to $$PLATFORM with compiler $$CC..."; \
 	echo ""
 
+Make-common: Make-common.dist
+	@if [ -f Make-common ]; then \
+		echo "Make-common.dist newer than Make-common, check for new options" ;\
+		echo "or touch Make-common to ignore."; \
+		exit 1; \
+	fi; \
+	cp Make-common.dist Make-common; \
+	echo "Make-common installed from distribution." ; \
+	echo "  Edit as needed before making!"	; \
+	exit 1
 #
 # rule to build Makefiles by concatenating Make-template file in each
 # subdirectory with global Make-common, .make-platform, and
diff --git a/include/ldbm.h b/include/ldbm.h
index 95bd55ffa7..1e3c61410c 100644
--- a/include/ldbm.h
+++ b/include/ldbm.h
@@ -46,7 +46,12 @@ extern gdbm_error	gdbm_errno;
 #include <sys/types.h>
 #include <limits.h>
 #include <fcntl.h>
-#include <db.h>
+
+#ifdef HAVE_SLEEPYCAT_DB2
+#	include <db_185.h>
+#else
+#	include <db.h>
+#endif
 
 typedef DBT	Datum;
 #define dsize	size
@@ -85,7 +90,11 @@ extern int	errno;
 #include <sys/types.h>
 #include <limits.h>
 #include <fcntl.h>
-#include <db.h>
+#ifdef HAVE_SLEEPYCAT_DB2
+#	include <db_185.h>
+#else
+#	include <db.h>
+#endif
 
 typedef DBT	Datum;
 #define dsize	size
diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c
index d7ae408a82..c4c3cd6dbb 100644
--- a/libraries/libldap/os-ip.c
+++ b/libraries/libldap/os-ip.c
@@ -314,20 +314,17 @@ do_ldap_select( LDAP *ld, struct timeval *timeout )
 	Debug( LDAP_DEBUG_TRACE, "do_ldap_select\n", 0, 0, 0 );
 
 	if ( tblsize == 0 ) {
-#ifdef FD_SETSIZE
-		/*
-		 * It is invalid to use a set size in excess of the type
-		 * scope, as defined for the fd_set in sys/types.h.  This
-		 * is true for any OS.
-		 */
-		tblsize = FD_SETSIZE;
-#else	/* !FD_SETSIZE*/
 #ifdef USE_SYSCONF
 		tblsize = sysconf( _SC_OPEN_MAX );
-#else /* USE_SYSCONF */
+#else /* !USE_SYSCONF */
 		tblsize = getdtablesize();
-#endif /* USE_SYSCONF */
-#endif	/* !FD_SETSIZE*/
+#endif /* !USE_SYSCONF */
+
+#ifdef FD_SETSIZE
+		if( tblsize > FD_SETSIZE ) {
+			tblsize = FD_SETSIZE;
+		}
+#endif	/* FD_SETSIZE*/
 	}
 
 	sip = (struct selectinfo *)ld->ld_selectinfo;
diff --git a/libraries/libldap/result.c b/libraries/libldap/result.c
index 77929120eb..8d4900f71a 100644
--- a/libraries/libldap/result.c
+++ b/libraries/libldap/result.c
@@ -638,20 +638,16 @@ ldap_select1( LDAP *ld, struct timeval *timeout )
 	static int	tblsize;
 
 	if ( tblsize == 0 ) {
-#ifdef FD_SETSIZE
-		/*
-		 * It is invalid to use a set size in excess of the type
-		 * scope, as defined for the fd_set in sys/types.h.  This
-		 * is true for any OS.
-		 */
-		tblsize = FD_SETSIZE;
-#else	/* !FD_SETSIZE*/
 #ifdef USE_SYSCONF
 		tblsize = sysconf( _SC_OPEN_MAX );
-#else /* USE_SYSCONF */
+#else /* !USE_SYSCONF */
 		tblsize = getdtablesize();
-#endif /* USE_SYSCONF */
-#endif	/* !FD_SETSIZE*/
+#endif /* !USE_SYSCONF */
+#ifdef FD_SETSIZE
+		if ( tblsize > FD_SETSIZE ) {
+			tblsize = FD_SETSIZE;
+		}
+#endif	/* FD_SETSIZE */
 	}
 
 	FD_ZERO( &readfds );
diff --git a/libraries/msdos/winsock/wsockip.c b/libraries/msdos/winsock/wsockip.c
index 5c86cd771f..9ac0417326 100644
--- a/libraries/msdos/winsock/wsockip.c
+++ b/libraries/msdos/winsock/wsockip.c
@@ -446,14 +446,6 @@ do_ldap_select( LDAP *ld, struct timeval *timeout )
 	Debug( LDAP_DEBUG_TRACE, "do_ldap_select\n", 0, 0, 0 );
 
 	if ( tblsize == 0 ) {
-#ifdef FD_SETSIZE
-		/*
-		 * It is invalid to use a set size in excess of the type
-		 * scope, as defined for the fd_set in sys/types.h.  This
-		 * is true for any OS.
-		 */
-		tblsize = FD_SETSIZE;
-#else	/* !FD_SETSIZE*/
 #ifdef USE_SYSCONF
 		tblsize = sysconf( _SC_OPEN_MAX );
 #else /* USE_SYSCONF */
@@ -463,7 +455,11 @@ do_ldap_select( LDAP *ld, struct timeval *timeout )
 		tblsize = getdtablesize();
 #endif
 #endif /* USE_SYSCONF */
-#endif	/* !FD_SETSIZE*/
+#ifdef FD_SETSIZE
+		if( tblsize > FD_SETSIZE ) {
+			tblsize = FD_SETSIZE;
+		}
+#endif	/* FD_SETSIZE*/
 	}
 
 	sip = (struct selectinfo *)ld->ld_selectinfo;