diff --git a/Make-common b/Make-common
index a11976265c2debb0dfe31f4f891a4c5c8ec1c727..101086709cbb72d0c5f921f0fd28ff2c41b4796c 100644
--- a/Make-common
+++ b/Make-common
@@ -22,19 +22,23 @@
 #############################################################################
 #
 # by default, everything is installed below INSTROOT
-# servers, config files, etc. are put in ETCDIR
+# 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
+# programs sysadmins will run are put in SBINDIR
+# servers are put in LIBEXECDIR
 #
 PREFIX?=/usr/local
-INSTROOT=${PREFIX}
-ETCDIR= $(INSTROOT)/etc/ldap
-INCLUDEDIR= $(INSTROOT)/include
-LIBDIR= $(INSTROOT)/lib
-MANDIR= $(INSTROOT)/man
-BINDIR= $(INSTROOT)/bin
+INSTROOT?=${PREFIX}
+ETCDIR?= $(INSTROOT)/etc/ldap
+INCLUDEDIR?= $(INSTROOT)/include
+LIBDIR?= $(INSTROOT)/lib
+MANDIR?= $(INSTROOT)/man
+BINDIR?= $(INSTROOT)/bin
+SBINDIR?=$(INSTROOT)/sbin
+LIBEXECDIR?=$(INSTROOT)/libexec
 #
 # if you want things to run in a different directory from where they
 # are installed, set this accordingly (this path gets compiled into a
@@ -45,9 +49,9 @@ RUNTIMEETCDIR?= $(ETCDIR)
 ## General compiler options                                                ##
 #############################################################################
 # Passed to every compile (cc or gcc).  This is where you put -O or -g, etc.
-#EXTRACFLAGS=-O -g
+EXTRACFLAGS=-O -g
 #EXTRACFLAGS=-O
-EXTRACFLAGS=-g
+#EXTRACFLAGS=-g
 # Passed to every link (ld).  Include -g here if you did in EXTRACFLAGS.
 EXTRALDFLAGS=-g
 
@@ -118,7 +122,7 @@ EXTRALDFLAGS=-g
 MAKESLAPD= yes
 #
 # remove the defines for backends you don't want to enable 
-SLAPD_BACKENDS= -DLDAP_LDBM # -DLDAP_SHELL -DLDAP_PASSWD
+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
@@ -142,6 +146,7 @@ SLAPD_BACKENDS= -DLDAP_LDBM # -DLDAP_SHELL -DLDAP_PASSWD
 LDBMBACKEND?=-DLDBM_USE_NDBM
 LDBMINCLUDE?=
 LDBMLIB?=
+
 # if you want to use a non-default threads package change the defines below
 # to one of:
 #	-DPOSIX_THREADS         (draft 10 or standard)
@@ -154,6 +159,13 @@ LDBMLIB?=
 #THREADS?=-DNO_THREADS
 #THREADSLIB?=
 
+#
+# Locations of auxilary programs
+# (excepts to below are generally defined in Make-platform)
+SENDMAIL?=/usr/lib/sendmail
+EDITOR?=/usr/ucb/vi
+FINGER?=/usr/ucb/finger
+
 #############################################################################
 ## The following options are used by the xax500 client.  If you haven't    ##
 ## retrieved the xax500 source and dropped it into the "clients"           ##
@@ -210,13 +222,15 @@ LDAP_DEBUG=-DLDAP_DEBUG
 LDAP_REFERRALS=-DLDAP_REFERRALS
 
 # uncomment these lines to enable support for CRYPT passwords in LDBM.
-LDAP_CRYPT=-DLDAP_CRYPT
-LDAP_CRYPT_LIB=-lcrypt
+# LDAP_CRYPT=-DLDAP_CRYPT
+# LDAP_CRYPT_LIB?=
+# and comment this line out
+LDAP_CRYPT_LIB=
 
 # uncomment these lines to enable support fro tcp_wrappers in servers.
 # Requires tcp_wrappers.
-LDAP_TCP_WRAPPERS=-DTCP_WRAPPERS -I/usr/local/include
-LDAP_TCP_WRAPPERS_LIB=-L/usr/local/lib -lwrap
+# LDAP_TCP_WRAPPERS=-DTCP_WRAPPERS -I/usr/local/include
+# LDAP_TCP_WRAPPERS_LIB=-L/usr/local/lib -lwrap
 
 # uncomment this line to use soundex for approximate matches in slapd.
 # the default is to use the metaphone algorithm.
diff --git a/build/platforms/freebsd-gcc/Make-platform b/build/platforms/freebsd-gcc/Make-platform
index e62892a9511b3e1ff57cb948389d482f098762f3..dd4aabdbdff8861f30c9c53dcd131e7ced0c88db 100644
--- a/build/platforms/freebsd-gcc/Make-platform
+++ b/build/platforms/freebsd-gcc/Make-platform
@@ -6,12 +6,14 @@
 #
 # add any platform-specific overrides below here
 #
-PREFIX?=/usr/local
-INSTROOT=${PREFIX}
-ETCDIR= $(INSTROOT)/etc/ldap
-EXTRACFLAGS=-O
+EXTRACFLAGS=-O -g
 LDBMBACKEND=-DLDBM_USE_DBBTREE
 LDBMINCLUDE=-I/usr/include
+
+EDITOR=/usr/bin/vi
+FINGER=/usr/bin/finger
+SENDMAIL=/usr/sbin/sendmail
+
 #
 # LDAP has a problem with the idea of implicit vs. explicit yields
 # in call conversion threading packages, like the MIT pthreads
diff --git a/clients/fax500/Make-template b/clients/fax500/Make-template
index 997cc6513db04e84e706a20a66482e46d813368c..1714f9bdba7151a1378e750cbc601897b5f21aa1 100644
--- a/clients/fax500/Make-template
+++ b/clients/fax500/Make-template
@@ -54,11 +54,11 @@ fax5version.c:	main.o faxtotpc.o $(LDIR)/libldap.a
 
 install:	rp500 xrpcomp fax500 FORCE
 		-$(MKDIR) -p $(ETCDIR) $(BINDIR)
-		$(INSTALL) $(INSTALLFLAGS) -m 755 rp500 $(ETCDIR)
-		$(SED) -e 's%ETCDIR%$(RUNTIMEETCDIR)%' xrpcomp > /tmp/xrpcomp.tmp
+		$(INSTALL) $(INSTALLFLAGS) -m 755 rp500 $(LIBEXECDIR)
+		$(SED) -e 's%ETCDIR%$(LIBEXECDIR)%' xrpcomp > /tmp/xrpcomp.tmp
 		$(INSTALL) $(INSTALLFLAGS) -m 755 /tmp/xrpcomp.tmp $(BINDIR)/xrpcomp
 		$(RM) /tmp/xrpcomp.tmp
-		$(INSTALL) $(INSTALLFLAGS) -m 755 fax500 $(ETCDIR)
+		$(INSTALL) $(INSTALLFLAGS) -m 755 fax500 $(LIBEXECDIR)
 
 lint:	FORCE
 	$(LINT) $(INCLUDES) $(DEFINES) $(SRCS)
diff --git a/clients/finger/Make-template b/clients/finger/Make-template
index 93d8b8dc39d9af41303a7b2e366e01411f6d2869..b8d1d9432c213a072a6572d0f072861edaf1509d 100644
--- a/clients/finger/Make-template
+++ b/clients/finger/Make-template
@@ -43,7 +43,7 @@ version.c:	$(OBJS) $(LDIR)/libldap.a
 
 install:	in.xfingerd FORCE
 	-$(MKDIR) -p $(ETCDIR)
-	$(INSTALL) $(INSTALLFLAGS) -m 755 in.xfingerd $(ETCDIR)
+	$(INSTALL) $(INSTALLFLAGS) -m 755 in.xfingerd $(LIBEXECDIR)
 
 lint:	FORCE
 	$(LINT) $(INCLUDES) $(DEFINES) $(SRCS)
diff --git a/clients/gopher/Make-template b/clients/gopher/Make-template
index 18a907038adfb98a0e671900cc866576764cb1e0..7f30c6c3009f04f77fc8d48cf869bbb06eb8de50 100644
--- a/clients/gopher/Make-template
+++ b/clients/gopher/Make-template
@@ -57,8 +57,8 @@ gwversion.c: go500gw.o detach.o setproctitle.o $(DLIBS)
 
 install:	go500 go500gw go500gw.help FORCE
 	-$(MKDIR) -p $(ETCDIR)
-	$(INSTALL) $(INSTALLFLAGS) -m 755 go500 $(ETCDIR)
-	$(INSTALL) $(INSTALLFLAGS) -m 755 go500gw $(ETCDIR)
+	$(INSTALL) $(INSTALLFLAGS) -m 755 go500 $(LIBEXECDIR)
+	$(INSTALL) $(INSTALLFLAGS) -m 755 go500gw $(LIBEXECDIR)
 	-$(MV) $(ETCDIR)/go500gw.help $(ETCDIR)/go500gw.help-
 	$(INSTALL) $(INSTALLFLAGS) -m 644 go500gw.help $(ETCDIR)
 
diff --git a/clients/mail500/Make-template b/clients/mail500/Make-template
index 360eaa8b345fedbd2c0e3ad68f5c52c3af78d575..deff87221b74f0dad22cd8cb888fd5e9108bbe32 100644
--- a/clients/mail500/Make-template
+++ b/clients/mail500/Make-template
@@ -42,7 +42,7 @@ version.c: $(OBJS) $(LDIR)/libldap/libldap.a
 
 install:	mail500 FORCE
 	-$(MKDIR) -p $(ETCDIR)
-	$(INSTALL) $(INSTALLFLAGS) -m 755 mail500 $(ETCDIR)
+	$(INSTALL) $(INSTALLFLAGS) -m 755 mail500 $(LIBEXECDIR)
 
 lint:	FORCE
 	$(LINT) $(INCLUDES) $(DEFINES) $(SRCS)
diff --git a/clients/rcpt500/Make-template b/clients/rcpt500/Make-template
index 7fc84bdfeb7d8a6ba4c391107992ce5ba76833f8..263b9b899648058814eab88dc8202e2f77b4a333 100644
--- a/clients/rcpt500/Make-template
+++ b/clients/rcpt500/Make-template
@@ -40,7 +40,7 @@ version.c: $(OBJS) $(LDIR)/libldap.a
 
 install:	rcpt500 rcpt500.help FORCE
 	-$(MKDIR) -p $(ETCDIR)
-	$(INSTALL) $(INSTALLFLAGS) -m 755 rcpt500 $(ETCDIR)
+	$(INSTALL) $(INSTALLFLAGS) -m 755 rcpt500 $(LIBEXECDIR)
 	$(INSTALL) $(INSTALLFLAGS) -m 644 rcpt500.help $(ETCDIR)
 
 lint:	FORCE
diff --git a/doc/man/man1/Make-template b/doc/man/man1/Make-template
index 5b7a9206ad27bd64759c6131f3beaebec5542eb0..e3f2fd4ea0972389402bb6781ed4c050dd791ebb 100644
--- a/doc/man/man1/Make-template
+++ b/doc/man/man1/Make-template
@@ -25,7 +25,11 @@ install:	FORCE
 	@TMPMAN=/tmp/ldapman.$$$$; \
 	VERSION=`$(CAT) $(VERSIONFILE)`; \
 	for page in *.$(SECT); do \
-	    $(SED) -e 's%ETCDIR%$(RUNTIMEETCDIR)%' -e "s%LDVERSION%$$VERSION%" \
+	    $(SED) -e "s%LDVERSION%$$VERSION%" \
+			-e 's%ETCDIR%$(RUNTIMEETCDIR)%' \
+			-e 's%SBINDIR%$(SBINDIR)%' \
+			-e 's%BINDIR%$(BINDIR)%' \
+			-e 's%LIBEXECDIR%$(LIBEXECDIR)%' \
 		    $$page > $$TMPMAN; \
 	    echo "installing $(INSTDIR)/$$page"; \
 	    $(INSTALL) $(INSTALLFLAGS) -m 644 $$TMPMAN $(INSTDIR)/$$page; \
diff --git a/doc/man/man3/Make-template b/doc/man/man3/Make-template
index a91cb2efbe0be77499bc9ae436a53a78a2e87a52..167861db0adcd6fff3b796cad0024abab856dea1 100644
--- a/doc/man/man3/Make-template
+++ b/doc/man/man3/Make-template
@@ -25,7 +25,11 @@ install:	FORCE
 	@TMPMAN=/tmp/ldapman.$$$$; \
 	VERSION=`$(CAT) $(VERSIONFILE)`; \
 	for page in *.$(SECT); do \
-	    $(SED) -e 's%ETCDIR%$(RUNTIMEETCDIR)%' -e "s%LDVERSION%$$VERSION%" \
+	    $(SED) -e "s%LDVERSION%$$VERSION%" \
+			-e 's%ETCDIR%$(RUNTIMEETCDIR)%' \
+			-e 's%SBINDIR%$(SBINDIR)%' \
+			-e 's%BINDIR%$(BINDIR)%' \
+			-e 's%LIBEXECDIR%$(LIBEXECDIR)%' \
 		    $$page > $$TMPMAN; \
 	    echo "installing $(INSTDIR)/$$page"; \
 	    $(INSTALL) $(INSTALLFLAGS) -m 644 $$TMPMAN $(INSTDIR)/$$page; \
diff --git a/doc/man/man5/Make-template b/doc/man/man5/Make-template
index 828df9b871dfb381f030c2db7dc45a291f112661..679d0fb1cac428a5c8914fa30b529422851d641b 100644
--- a/doc/man/man5/Make-template
+++ b/doc/man/man5/Make-template
@@ -25,7 +25,11 @@ install:	FORCE
 	@TMPMAN=/tmp/ldapman.$$$$; \
 	VERSION=`$(CAT) $(VERSIONFILE)`; \
 	for page in *.$(SECT); do \
-	    $(SED) -e 's%ETCDIR%$(RUNTIMEETCDIR)%' -e "s%LDVERSION%$$VERSION%" \
+	    $(SED) -e "s%LDVERSION%$$VERSION%" \
+			-e 's%ETCDIR%$(RUNTIMEETCDIR)%' \
+			-e 's%SBINDIR%$(SBINDIR)%' \
+			-e 's%BINDIR%$(BINDIR)%' \
+			-e 's%LIBEXECDIR%$(LIBEXECDIR)%' \
 		    $$page > $$TMPMAN; \
 	    echo "installing $(INSTDIR)/$$page"; \
 	    $(INSTALL) $(INSTALLFLAGS) -m 644 $$TMPMAN $(INSTDIR)/$$page; \
diff --git a/doc/man/man8/Make-template b/doc/man/man8/Make-template
index d256bf57921d94440f0407f793a706964023c82e..d8312a9532b368b395f99ab4ce22c2242cbac439 100644
--- a/doc/man/man8/Make-template
+++ b/doc/man/man8/Make-template
@@ -25,7 +25,11 @@ install:	FORCE
 	@TMPMAN=/tmp/ldapman.$$$$; \
 	VERSION=`$(CAT) $(VERSIONFILE)`; \
 	for page in *.$(SECT); do \
-	    $(SED) -e 's%ETCDIR%$(RUNTIMEETCDIR)%' -e "s%LDVERSION%$$VERSION%" \
+	    $(SED) -e "s%LDVERSION%$$VERSION%" \
+			-e 's%ETCDIR%$(RUNTIMEETCDIR)%' \
+			-e 's%SBINDIR%$(SBINDIR)%' \
+			-e 's%BINDIR%$(BINDIR)%' \
+			-e 's%LIBEXECDIR%$(LIBEXECDIR)%' \
 		    $$page > $$TMPMAN; \
 	    echo "installing $(INSTDIR)/$$page"; \
 	    $(INSTALL) $(INSTALLFLAGS) -m 644 $$TMPMAN $(INSTDIR)/$$page; \
diff --git a/doc/man/man8/centipede.8 b/doc/man/man8/centipede.8
index 680e9b971de3942e50c47fade6ae4279a58fe237..c189b0cdb5e2453414030d8dbdc6c085940d7784 100644
--- a/doc/man/man8/centipede.8
+++ b/doc/man/man8/centipede.8
@@ -2,7 +2,7 @@
 .SH NAME
 centipede \- LDAP centroid index generation and maintenance program
 .SH SYNOPSIS
-.B ETCDIR/centipede
+.B SBINDIR/centipede
 .B [\-f filter]
 .B [\-F] [\-R]
 .B [\-f filter] [\-t directory]
@@ -25,7 +25,7 @@ The basic form of the command is as follows
 .LP
 .nf
 .ft tt
-	ETCDIR/centipede [options]
+	SBINDIR/centipede [options]
 		-s "ldap://[host/]subtree-to-index-dn"
 		-d "ldap://[host/]parent-of-index-entry-dn"
 		attributes
@@ -61,7 +61,7 @@ like this:
 .LP
 .nf
 .ft tt
-	ETCDIR/centipede -f '(objectclass=person)'
+	SBINDIR/centipede -f '(objectclass=person)'
 		-m simple -b your-rootdn -p your-rootdnpw
 		-s "ldap://babs.com/o=BabsCo, c=US"
 		-d "ldap://vertigo.rs.itd.umich.edu/c=US"
diff --git a/doc/man/man8/chlog2replog.8 b/doc/man/man8/chlog2replog.8
index e99dfd81c9c8f2296d729f94be5c5b295b0320a7..980c9ac967c2e35361633d589a7e90260f2b7e81 100644
--- a/doc/man/man8/chlog2replog.8
+++ b/doc/man/man8/chlog2replog.8
@@ -3,7 +3,7 @@
 chlog2replog \- convert an X.500 DSA-style changelog to an LDAP-style
 replication log
 .SH SYNOPSIS
-.B ETCDIR/chlog2replog
+.B SBINDIR/chlog2replog
 .B \-r hostname:port [\-r hostname:port ...]
 .B \-d dn\-suffix [\-o output\-file] < input\-file
 .LP
@@ -64,7 +64,7 @@ DNs, and including a replica: entry for host "ldapserver," port
 .LP
 .nf
 .ft tt
-	ETCDIR/chlog2replog -d ", o=University of Michigan, c=US"
+	SBINDIR/chlog2replog -d ", o=University of Michigan, c=US"
 	-r ldapserver:389 < changelog
 .ft
 .fi
@@ -75,7 +75,7 @@ give this command:
 .LP
 .nf
 .ft tt
-	ETCDIR/chlog2replog -d ", o=University of Michigan, c=US"
+	SBINDIR/chlog2replog -d ", o=University of Michigan, c=US"
 	-r ldapserver:389 -o replog < changelog
 .ft
 .fi
@@ -86,7 +86,7 @@ give this command:
 .LP
 .nf
 .ft tt
-	tail +0f changelog  | ETCDIR/chlog2replog
+	tail +0f changelog  | SBINDIR/chlog2replog
 	-d ", o=University of Michigan, c=US"
 	-r ldapserver:389 -o replog < changelog
 .ft
diff --git a/doc/man/man8/edb2ldif.8 b/doc/man/man8/edb2ldif.8
index 15c066f8c29b88cd8c54232336f0f5efcd8196f5..b222fbc4389bf929beefd762aca685bc7da371a9 100644
--- a/doc/man/man8/edb2ldif.8
+++ b/doc/man/man8/edb2ldif.8
@@ -2,7 +2,7 @@
 .SH NAME
 edb2ldif \- QUIPU EDB file to LDIF conversion tool
 .SH SYNOPSIS
-.B ETCDIR/edb2ldif
+.B SBINDIR/edb2ldif
 .B [\-d] [\-v] [\-r] [\-o] [\-b basedn]
 .B [\-a addvalsfile] [\-f fileattrdir]
 .B [\-i ignoreattr...] [edbfile...]
diff --git a/doc/man/man8/go500.8 b/doc/man/man8/go500.8
index 6fbbf8f5d31969d9e759e90661732924db0f5c6e..d0dd686372640bfe72547f503ad10524961d3b6a 100644
--- a/doc/man/man8/go500.8
+++ b/doc/man/man8/go500.8
@@ -2,7 +2,7 @@
 .SH NAME
 go500 \- Local Gopher index search to X.500 search gateway
 .SH SYNOPSIS
-.B ETCDIR/go500 [\-b searchbase] [\-d level] [\-l]
+.B LIBEXECDIR/go500 [\-b searchbase] [\-d level] [\-l]
 .B [\-x hostname] [\-c rdncount] [\-f filterfile]
 .B [\-t templatefile]
 .B [\-p port] [\-I]
@@ -27,7 +27,7 @@ as a stand-alone server, simply start it with no arguments
 .LP
 .nf
 .ft tt
-	ETCDIR/go500
+	LIBEXECDIR/go500
 .ft
 .fi
 .LP
@@ -38,8 +38,8 @@ or equivalent file:
 .LP
 .nf
 .ft tt
-	if [ -f ETCDIR/go500 ]; then
-		ETCDIR/go500; echo ' go500'
+	if [ -f LIBEXECDIR/go500 ]; then
+		LIBEXECDIR/go500; echo ' go500'
 	fi
 .ft
 .fi
@@ -65,7 +65,7 @@ file, or the equivalent:
 .LP
 .nf
 .ft tt
-    go500   stream  tcp     nowait  nobody  ETCDIR/go500    go500 -I
+    go500   stream  tcp     nowait  nobody  LIBEXECDIR/go500    go500 -I
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/go500gw.8 b/doc/man/man8/go500gw.8
index 4464a88b43de7042502462524436269bda9e356b..92ce2608d56ad0c8a9d09677a5856ce6634297e2 100644
--- a/doc/man/man8/go500gw.8
+++ b/doc/man/man8/go500gw.8
@@ -2,7 +2,7 @@
 .SH NAME
 go500gw \- General Gopher to X.500 gateway for browsing and searching
 .SH SYNOPSIS
-.B ETCDIR/go500gw [\-a] [\-d level] [\-f filterfile]
+.B LIBEXECDIR/go500gw [\-a] [\-d level] [\-f filterfile]
 .B [\-t templatefile] [\-c rdncount]
 .B [\-h helpfile] [\-l] [\-p listenport]
 .B [\-P ldapport] [\-x ldaphost] [\-I]
@@ -27,7 +27,7 @@ as a stand-alone server, simply start it with no arguments
 .LP
 .nf
 .ft tt
-	ETCDIR/go500gw
+	LIBEXECDIR/go500gw
 .ft
 .fi
 .LP
@@ -38,8 +38,8 @@ or equivalent file:
 .LP
 .nf
 .ft tt
-	if [ -f ETCDIR/go500gw ]; then
-		ETCDIR/go500gw; echo ' go500gw'
+	if [ -f LIBEXECDIR/go500gw ]; then
+		LIBEXECDIR/go500gw; echo ' go500gw'
 	fi
 .ft
 .fi
@@ -64,7 +64,7 @@ file, or the equivalent:
 .LP
 .nf
 .ft tt
-    go500gw  stream  tcp  nowait  nobody  ETCDIR/go500gw    go500gw -I
+    go500gw  stream  tcp  nowait  nobody  LIBEXECDIR/go500gw    go500gw -I
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/in.xfingerd.8 b/doc/man/man8/in.xfingerd.8
index a2cf788b18f6d31c07d9fcb80ad258b9eb54486f..40b1e1b3d64baba5fa06e3bb516fbb2317c65092 100644
--- a/doc/man/man8/in.xfingerd.8
+++ b/doc/man/man8/in.xfingerd.8
@@ -2,7 +2,7 @@
 .SH NAME
 in.xfingerd \- Finger to LDAP/X.500 gateway daemon
 .SH SYNOPSIS
-.B ETCDIR/in.xfingerd [\-f filterfile] [\-i]
+.B LIBEXECDIR/in.xfingerd [\-f filterfile] [\-i]
 .B [\-l] [\-t templatefile] [\-c rdncount] [\-x hostname]
 .B [\-p port]
 .SH DESCRIPTION
@@ -22,7 +22,7 @@ file, or the equivalent:
 .LP
 .nf
 .ft tt
-    finger stream tcp nowait nobody ETCDIR/in.xfingerd in.xfingerd
+    finger stream tcp nowait nobody LIBEXECDIR/in.xfingerd in.xfingerd
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/ldapd.8 b/doc/man/man8/ldapd.8
index d7710937763b371a14774a33229669c1eed9693e..82350d16e870250bfff4f34119b7f63a5fcb6208 100644
--- a/doc/man/man8/ldapd.8
+++ b/doc/man/man8/ldapd.8
@@ -2,7 +2,7 @@
 .SH NAME
 ldapd \- LDAP X.500 Protocol Daemon
 .SH SYNOPSIS
-.B ETCDIR/ldapd [\-d level] [\-l] [\-c dsaname]
+.B LIBEXECDIR/ldapd [\-d level] [\-l] [\-c dsaname]
 .B [\-p port] [\-t timeout] [\-r referraltimeout]
 .B [\-I] [\-U]
 .SH DESCRIPTION
@@ -103,7 +103,7 @@ to the first DSA listed in the dsaptailor file, just type:
 .LP
 .nf
 .ft tt
-	ETCDIR/ldapd
+	LIBEXECDIR/ldapd
 .ft
 .fi
 .LP
@@ -112,7 +112,7 @@ will be printed on standard error, type:
 .LP
 .nf
 .ft tt
-	ETCDIR/ldapd -c dsanameoraddr -d 31
+	LIBEXECDIR/ldapd -c dsanameoraddr -d 31
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/ldbmcat.8 b/doc/man/man8/ldbmcat.8
index f7fefeff779286ba80b8d76a2968ea076c6f2276..0f48e895b9099e466a90d245dbf87e24a3c11b46 100644
--- a/doc/man/man8/ldbmcat.8
+++ b/doc/man/man8/ldbmcat.8
@@ -2,7 +2,7 @@
 .SH NAME
 ldbmcat \- LDBM to LDIF database format conversion utility
 .SH SYNOPSIS
-.B ETCDIR/ldbmcat [\-n] id2entry\-file
+.B SBINDIR/ldbmcat [\-n] id2entry\-file
 .LP
 .SH DESCRIPTION
 .LP
@@ -33,7 +33,7 @@ give the command:
 .LP
 .nf
 .ft tt
-	ETCDIR/ldbmcat -n id2entry.dbb > ldif
+	SBINDIR/ldbmcat -n id2entry.dbb > ldif
 .ft
 .fi
 .LP
@@ -43,8 +43,8 @@ attribute, give these commands:
 .LP
 .nf
 .ft tt
-	ETCDIR/ldbmcat id2entry.dbb > ldif
-	ETCDIR/ldif2index -i ldif -f slapd-config-file mail
+	SBINDIR/ldbmcat id2entry.dbb > ldif
+	SBINDIR/ldif2index -i ldif -f slapd-config-file mail
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/ldif.8 b/doc/man/man8/ldif.8
index 2482de3074e34d2d7aa01ff7771f12f6091584bf..69fd0dffc647d088831fbdf4b290d047bfd44e6d 100644
--- a/doc/man/man8/ldif.8
+++ b/doc/man/man8/ldif.8
@@ -2,7 +2,7 @@
 .SH NAME
 ldif \- convert arbitrary data to LDIF format
 .SH SYNOPSIS
-.B ETCDIR/ldif [\-b] attr\-name
+.B SBINDIR/ldif [\-b] attr\-name
 .LP
 .SH DESCRIPTION
 .LP
diff --git a/doc/man/man8/ldif2ldbm.8 b/doc/man/man8/ldif2ldbm.8
index f6edfc6a52a5e1016b9e3a7dce39f8d4abf34576..9747356bd34ac17ae6e2f7dad330284fd0c014dd 100644
--- a/doc/man/man8/ldif2ldbm.8
+++ b/doc/man/man8/ldif2ldbm.8
@@ -2,21 +2,21 @@
 .SH NAME
 ldif2ldbm, ldif2index, ldif2id2entry, ldif2id2children \- LDIF to LDBM database format conversion utilities
 .SH SYNOPSIS
-.B ETCDIR/ldif2ldbm
+.B SBINDIR/ldif2ldbm
 .B \-i ldif\-input\-file
 .B [\-d debug\-level] [\-f slapd\-config\-file]
 .B [\-j number\-of\-jobs]
 .LP
-.B ETCDIR/ldif2index
+.B SBINDIR/ldif2index
 .B \-i ldif\-input\-file
 .B [\-d debug\-level] [\-f slapd\-config\-file]
 .B attribute\-name
 .LP
-.B ETCDIR/ldif2id2entry
+.B SBINDIR/ldif2id2entry
 .B \-i ldif\-input\-file
 .B [\-d debug\-level] [\-f slapd\-config\-file]
 .LP
-.B ETCDIR/ldif2id2children
+.B SBINDIR/ldif2id2children
 .B \-i ldif\-input\-file
 .B [\-d debug\-level] [\-f slapd\-config\-file]
 .LP
@@ -85,12 +85,12 @@ To convert the file
 into an LDBM database with indexes as described in the
 .I slapd
 config file
-.BR /usr/local/etc/slapd.conf ,
+.BR ETCDIR/slapd.conf ,
 give the command:
 .LP
 .nf
 .ft tt
-	ETCDIR/ldif2index -i ldif.input -f /usr/local/etc/slapd.conf
+	SBINDIR/ldif2index -i ldif.input -f ETCDIR/slapd.conf
 .ft
 .fi
 .LP
@@ -99,7 +99,7 @@ give this command:
 .LP
 .nf
 .ft tt
-	ETCDIR/ldif2index -i ldif.input -f /usr/local/etc/slapd.conf -j 2
+	SBINDIR/ldif2index -i ldif.input -f ETCDIR/slapd.conf -j 2
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/mail500.8 b/doc/man/man8/mail500.8
index fd9bffb1055ab0c6bcbf32e5659e12934d8011a9..9fe5a4acb95c740480020fec639e439d52b56aa6 100644
--- a/doc/man/man8/mail500.8
+++ b/doc/man/man8/mail500.8
@@ -4,11 +4,11 @@ mail500 \- X.500 capable mailer
 .LP
 fax500 \- X.500 capable fax delivery agent
 .SH SYNOPSIS
-.B ETCDIR/mail500 [\-d level] [\-f mailfrom]
+.B LIBEXECDIR/mail500 [\-d level] [\-f mailfrom]
 .B [\-h hostname] [\-l ldaphost]
 .B [\-m address] [\-v vacationhost]
 .LP
-.B ETCDIR/fax500 [\-d level] [\-f mailfrom]
+.B LIBEXECDIR/fax500 [\-d level] [\-f mailfrom]
 .B [\-h hostname] [\-l ldaphost]
 .B [\-m address]
 .SH DESCRIPTION
@@ -253,8 +253,8 @@ The mail500 and fax500 mailers should be defined similar to this in the
 sendmail.cf file:
 .LP
 .nf
-Mmail500, P=ETCDIR/mail500, F=DFMSmnXuh, A=mail500 -f $f -h $h -m $n@$w $u
-Mfax500, P=ETCDIR/fax500, F=DFMSmnXuh, A=fax500 -f $f -h $h -m $n@$w $u
+Mmail500, P=LIBEXECDIR/mail500, F=DFMSmnXuh, A=mail500 -f $f -h $h -m $n@$w $u
+Mfax500, P=LIBEXECDIR/fax500, F=DFMSmnXuh, A=fax500 -f $f -h $h -m $n@$w $u
 .fi
 .LP
 This defines how mail500/fax500 will be treated by sendmail and what
diff --git a/doc/man/man8/rcpt500.8 b/doc/man/man8/rcpt500.8
index 3131812bb8dd21b882ad2404aa13ce142d7f0579..f991514b4937dff3438a9871b0d75684fcc97571 100644
--- a/doc/man/man8/rcpt500.8
+++ b/doc/man/man8/rcpt500.8
@@ -2,7 +2,7 @@
 .SH NAME
 rcpt500 \- mail to X.500 gateway program
 .SH SYNOPSIS
-.B ETCDIR/rcpt500 [\-l] [\-h ldaphost] [\-p ldapport]
+.B LIBEXECDIR/rcpt500 [\-l] [\-h ldaphost] [\-p ldapport]
 .B [\-b searchbase] [\-a] [\-U] [\-z sizelimit] [\-u dapuser]
 .B [\-f filterfile] [\-t templatefile] [\-c rdncount]
 .SH DESCRIPTION
@@ -27,7 +27,7 @@ invoked whenever mail is sent to the address \fInamelookup\fP on your host:
 .nf
 .fi
 .ft tt
-    namelookup:	"|ETCDIR/rcpt500 -l"
+    namelookup:	"|LIBEXECDIR/rcpt500 -l"
 .ft
 .fi
 .SH OPTIONS
diff --git a/doc/man/man8/slapd.8 b/doc/man/man8/slapd.8
index be0c97d3bf58f2adacc9d61c4c04517bc4a287b6..7ebbf2677b567e74d79c6bb6ecd36c935cf4485e 100644
--- a/doc/man/man8/slapd.8
+++ b/doc/man/man8/slapd.8
@@ -2,7 +2,7 @@
 .SH NAME
 slapd \- Stand-alone LDAP Daemon
 .SH SYNOPSIS
-.B ETCDIR/slapd [\-d debug\-level]
+.B LIBEXECDIR/slapd [\-d debug\-level]
 .B [\-f slapd\-config\-file] [\-p port\-number]
 .B [\-s syslog\-level] [\-i]
 .B 
@@ -89,7 +89,7 @@ on voluminous debugging which will be printed on standard error, type:
 .LP
 .nf
 .ft tt
-	ETCDIR/slapd -f /usr/local/slapd/slapd.conf -d 255
+	LIBEXECDIR/slapd -f ETCDIR/slapd.conf -d 255
 .ft
 .fi
 .LP
diff --git a/doc/man/man8/slurpd.8 b/doc/man/man8/slurpd.8
index 037584e8a1c7e27082f3917cd671a35c89805816..99658a69d02ab9e3b77e1149f4faf43dbdee29ae 100644
--- a/doc/man/man8/slurpd.8
+++ b/doc/man/man8/slurpd.8
@@ -2,7 +2,7 @@
 .SH NAME
 slurpd \- Standalone LDAP Update Replication Daemon
 .SH SYNOPSIS
-.B ETCDIR/slurpd [\-d debug\-level]
+.B LIBEXECDIR/slurpd [\-d debug\-level]
 .B [\-f slapd\-config\-file] [\-r slapd\-replog\-file]
 .B [\-t temp\-dir] [\-o] [\-k srvtab\-file]
 .B 
@@ -126,7 +126,7 @@ just type:
 .LP
 .nf
 .ft tt
-	ETCDIR/slurpd
+	LIBEXECDIR/slurpd
 .ft
 .fi
 .LP
@@ -139,7 +139,7 @@ on voluminous debugging which will be printed on standard error, type:
 .LP
 .nf
 .ft tt
-	ETCDIR/slurpd -f /usr/local/etc/slapd.conf -d 255
+	LIBEXECDIR/slurpd -f ETCDIR/slapd.conf -d 255
 .ft
 .fi
 .LP
diff --git a/include/Make-template b/include/Make-template
index c0a26fb6296646fa688364490f21abc05f1c6b69..4263d6ce8ac3868b30f8d6b596daed7ebc138cb0 100644
--- a/include/Make-template
+++ b/include/Make-template
@@ -31,7 +31,13 @@ ldapconfig.h:	ldapconfig.h.edit Makefile
         echo " * INSTALL file for more information." >> $@; \
         echo " */ " >> $@; \
         echo "" >> $@; \
-	$(SED) -e 's;%ETCDIR%;$(RUNTIMEETCDIR);' ldapconfig.h.edit >> $@; \
+	$(SED) -e 's;%ETCDIR%;$(RUNTIMEETCDIR);' \
+			-e 's;%SBINDIR%;$(SBINDIR);' \
+			-e 's;%LIBEXECDIR%;$(LIBEXECDIR);' \
+			-e 's;%EDITOR%;$(EDITOR);' \
+			-e 's;%FINGER%;$(FINGER);' \
+			-e 's;%SENDMAIL%;$(SENDMAIL);' \
+			 ldapconfig.h.edit >> $@; \
 	$(CHMOD) 444 $@
 
 install: all FORCE
diff --git a/include/ldapconfig.h.edit b/include/ldapconfig.h.edit
index 723bde24729c51e5bc28023147b3729405866b5d..721c580826037d92475034cb2220e283f8ad0eeb 100644
--- a/include/ldapconfig.h.edit
+++ b/include/ldapconfig.h.edit
@@ -72,7 +72,7 @@ Please try again later.\r\n"
 	/* max number of hits displayed in full before a list is presented */
 #define FINGER_LISTLIMIT	1
 	/* what to exec for "finger @host" */
-#define FINGER_CMD		"/usr/ucb/finger"
+#define FINGER_CMD		"%FINGER%"
 	/* how to treat aliases when searching */
 #define FINGER_DEREF		LDAP_DEREF_FINDING
 	/* attribute to use when sorting results */
@@ -145,7 +145,7 @@ Please try again later.\r\n"
 #define RCPT500_FROM		"\"X.500 Query Program\" <X500-Query>"
 	/* command that will accept an RFC822 message text on standard
 	   input, and send it.  sendmail -t does this nicely. */
-#define RCPT500_PIPEMAILCMD	"/usr/lib/sendmail -t"
+#define RCPT500_PIPEMAILCMD	"%SENDMAIL% -t"
         /* where to search */
 #define RCPT500_BASE             DEFAULT_BASE
 	/* attribute to use when sorting results */
@@ -201,7 +201,7 @@ Please try again later.\r\n"
 	/* timeout for all searches */
 #define MAIL500_TIMEOUT		180
 	/* sendmail location - mail500 needs to exec this */
-#define MAIL500_SENDMAIL	"/usr/lib/sendmail"
+#define MAIL500_SENDMAIL	"%SENDMAIL%"
 
 /*
  * UD DEFINITIONS
@@ -209,7 +209,7 @@ Please try again later.\r\n"
 	/* ud configuration file */
 #define UD_CONFIG_FILE		"%ETCDIR%/ud.conf"
 	/* default editor */
-#define UD_DEFAULT_EDITOR	"/usr/ucb/vi"
+#define UD_DEFAULT_EDITOR	"%EDITOR%"
 	/* default bbasename of user config file */
 #define UD_USER_CONFIG_FILE	".udrc"
 	/* default user to bind as */
@@ -235,7 +235,7 @@ Please try again later.\r\n"
 	/* maximum number of members allowed */
 #define FAX_MAXMEMBERS		LDAP_NO_LIMIT
 	/* program to send mail */
-#define FAX_SENDMAIL		"/usr/lib/sendmail"
+#define FAX_SENDMAIL		"%SENDMAIL%"
 
 /*
  * RP500 DEFINITIONS
diff --git a/servers/ldapd/Make-template b/servers/ldapd/Make-template
index f8781c5323b6bc4c327f83d65b2b1230583b2110..df3e213ed728f55cc9cb1dc0695fe98ee9f61dfa 100644
--- a/servers/ldapd/Make-template
+++ b/servers/ldapd/Make-template
@@ -71,10 +71,10 @@ install:	FORCE
 	    echo "uncomment the HAVEISODE=yes line in the Make-common file to build and install ldapd"; \
         fi
 
-install-ldapd: $(ETCDIR) $(ETCDIR)/ldapd
+install-ldapd: $(LIBEXECDIR) $(LIBEXECDIR)/ldapd
 
-$(ETCDIR)/ldapd:	ldapd
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldapd $(ETCDIR)
+$(LIBEXECDIR)/ldapd:	ldapd
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldapd $(LIBEXECDIR)
 
 lint:	FORCE
 	$(LINT) $(INCLUDES) $(DEFINES) $(SRCS)
diff --git a/servers/slapd/Make-template b/servers/slapd/Make-template
index 48ceaf1deaa1b0fcf2fde523fa132ece146c21c4..3c946f58d929067f7ebcdd12bd6d19005557608c 100644
--- a/servers/slapd/Make-template
+++ b/servers/slapd/Make-template
@@ -100,12 +100,13 @@ version.c: libbackends.a $(OBJS) $(LDIR)/liblber/liblber.a \
 	-e "s|%VERSION%|$${v}|" \
 	< Version.c > $@)
 
-install: all $(ETCDIR) $(ETCDIR)/slapd $(ETCDIR)/slapd.conf \
+install: all $(LIBEXECDIR) $(LIBEXECDIR)/slapd \
+		$(ETCDIR) $(ETCDIR)/slapd.conf \
 		$(ETCDIR)/slapd.at.conf $(ETCDIR)/slapd.oc.conf \
 		install-tools
 
-$(ETCDIR)/slapd:	slapd
-	$(INSTALL) $(INSTALLFLAGS) -m 755 slapd $(ETCDIR)
+$(LIBEXECDIR)/slapd:	slapd
+	$(INSTALL) $(INSTALLFLAGS) -m 755 slapd $(LIBEXECDIR)
 
 $(ETCDIR)/slapd.conf:	slapd.conf
 	$(SED) -e 's;%ETCDIR%;$(RUNTIMEETCDIR);' slapd.conf > /tmp/slapd.$$
diff --git a/servers/slapd/tools/Make-template b/servers/slapd/tools/Make-template
index e815fd8cf2e70ac847cb113196ebee6820d45fb7..8790bcbee813f71109ce3ddc719b63d11d20cb98 100644
--- a/servers/slapd/tools/Make-template
+++ b/servers/slapd/tools/Make-template
@@ -78,7 +78,9 @@ ldif2ldbm:	ldif2ldbm.sed.o ../libbackends.a $(OBJS2)
 		../libbackends.a $(LDFLAGS) $(LIBS2)
 
 ldif2ldbm.sed.c: ldif2ldbm.c
-	$(SED) -e 's;%ETCDIR%;$(RUNTIMEETCDIR);' ldif2ldbm.c > ldif2ldbm.sed.c
+	$(SED) -e 's;%ETCDIR%;$(RUNTIMEETCDIR);' \
+			-e 's;%SBINDIR%;$(SBINDIR);' \
+		ldif2ldbm.c > ldif2ldbm.sed.c
 
 ldif2id2entry:	ldif2id2entry.o ../libbackends.a $(OBJS2)
 	$(CC) $(ALDFLAGS) -o $@ ldif2id2entry.o $(OBJS2) \
@@ -106,49 +108,49 @@ ldbmtest:	ldbmtest.o ../libbackends.a $(OBJS2)
 	$(CC) $(ALDFLAGS) -o ldbmtest ldbmtest.o $(OBJS2) \
 		../libbackends.a $(LDFLAGS) $(LIBS2)
 
-install: $(ETCDIR) $(ETCDIR)/edb2ldif $(ETCDIR)/ldif2ldbm \
-	$(ETCDIR)/ldif2index $(ETCDIR)/ldif2id2entry \
-	$(ETCDIR)/ldif2id2children $(ETCDIR)/ldbmcat \
-	$(ETCDIR)/centipede $(ETCDIR)/ldbmtest \
-	$(ETCDIR)/ldif
+install: $(SBINDIR) $(SBINDIR)/edb2ldif $(SBINDIR)/ldif2ldbm \
+	$(SBINDIR)/ldif2index $(SBINDIR)/ldif2id2entry \
+	$(SBINDIR)/ldif2id2children $(SBINDIR)/ldbmcat \
+	$(SBINDIR)/centipede $(SBINDIR)/ldbmtest \
+	$(SBINDIR)/ldif
 
-$(ETCDIR)/edb2ldif:	build-edb2ldif
+$(SBINDIR)/edb2ldif:	build-edb2ldif
 	@if [ "$(HAVEISODE)" = "yes" ]; then \
-		$(INSTALL) $(INSTALLFLAGS) -m 755 edb2ldif $(ETCDIR); \
+		$(INSTALL) $(INSTALLFLAGS) -m 755 edb2ldif $(SBINDIR); \
 	else \
 		exit 0; \
 	fi
 
-$(ETCDIR)/chlog2replog:	build-chlog2replog
+$(SBINDIR)/chlog2replog:	build-chlog2replog
 	@if [ "$(HAVEISODE)" = "yes" ]; then \
-		$(INSTALL) $(INSTALLFLAGS) -m 755 chlog2replog $(ETCDIR); \
+		$(INSTALL) $(INSTALLFLAGS) -m 755 chlog2replog $(SBINDIR); \
 	else \
 		exit 0; \
 	fi
 
-$(ETCDIR)/ldif2ldbm:	ldif2ldbm
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2ldbm $(ETCDIR)
+$(SBINDIR)/ldif2ldbm:	ldif2ldbm
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2ldbm $(SBINDIR)
 
-$(ETCDIR)/ldif2index:	ldif2index
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2index $(ETCDIR)
+$(SBINDIR)/ldif2index:	ldif2index
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2index $(SBINDIR)
 
-$(ETCDIR)/ldif2id2entry:	ldif2id2entry
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2id2entry $(ETCDIR)
+$(SBINDIR)/ldif2id2entry:	ldif2id2entry
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2id2entry $(SBINDIR)
 
-$(ETCDIR)/ldif2id2children:	ldif2id2children
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2id2children $(ETCDIR)
+$(SBINDIR)/ldif2id2children:	ldif2id2children
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif2id2children $(SBINDIR)
 
-$(ETCDIR)/ldbmcat:	ldbmcat
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldbmcat $(ETCDIR)
+$(SBINDIR)/ldbmcat:	ldbmcat
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldbmcat $(SBINDIR)
 
-$(ETCDIR)/ldif:	ldif
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif $(ETCDIR)
+$(SBINDIR)/ldif:	ldif
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldif $(SBINDIR)
 
-$(ETCDIR)/centipede:	centipede
-	$(INSTALL) $(INSTALLFLAGS) -m 755 centipede $(ETCDIR)
+$(SBINDIR)/centipede:	centipede
+	$(INSTALL) $(INSTALLFLAGS) -m 755 centipede $(SBINDIR)
 
-$(ETCDIR)/ldbmtest:	ldbmtest
-	$(INSTALL) $(INSTALLFLAGS) -m 755 ldbmtest $(ETCDIR)
+$(SBINDIR)/ldbmtest:	ldbmtest
+	$(INSTALL) $(INSTALLFLAGS) -m 755 ldbmtest $(SBINDIR)
 
 lint:	FORCE
 	$(LINT) $(INCLUDES) $(DEFINES) $(SRCS)
diff --git a/servers/slapd/tools/ldif2ldbm.c b/servers/slapd/tools/ldif2ldbm.c
index 79e8c25a8529a21b147f6b5555e9b3eb4c437824..3daafb85598181ff303f7f64d3af7e8c87403696 100644
--- a/servers/slapd/tools/ldif2ldbm.c
+++ b/servers/slapd/tools/ldif2ldbm.c
@@ -7,7 +7,7 @@
 #include "../back-ldbm/back-ldbm.h"
 
 #define DEFAULT_CONFIGFILE	"%ETCDIR%/slapd.conf"
-#define DEFAULT_ETCDIR		"%ETCDIR%"
+#define DEFAULT_SBINDIR		"%SBINDIR%"
 #define INDEXCMD		"ldif2index"
 #define ID2ENTRYCMD		"ldif2id2entry"
 #define ID2CHILDRENCMD		"ldif2id2children"
@@ -52,14 +52,14 @@ static int      nkids;
 static void
 usage( char *name )
 {
-	fprintf( stderr, "usage: %s -i inputfile [-d debuglevel] [-f configfile] [-j #jobs] [-n databasenumber] [-e etcdir]\n", name );
+	fprintf( stderr, "usage: %s -i inputfile [-d debuglevel] [-f configfile] [-j #jobs] [-n databasenumber] [-s sbindir]\n", name );
 	exit( 1 );
 }
 
 main( int argc, char **argv )
 {
 	int		i, stop, status;
-	char		*linep, *buf, *etcdir;
+	char		*linep, *buf, *sbindir;
 	char		*args[10];
 	char		buf2[20], buf3[20];
 	char		line[BUFSIZ];
@@ -74,17 +74,18 @@ main( int argc, char **argv )
 	Avlnode		*avltypes = NULL;
 	extern char	*optarg;
 
-	etcdir = DEFAULT_ETCDIR;
+	sbindir = DEFAULT_SBINDIR;
 	tailorfile = DEFAULT_CONFIGFILE;
 	dbnum = -1;
-	while ( (i = getopt( argc, argv, "d:e:f:i:j:n:" )) != EOF ) {
+	while ( (i = getopt( argc, argv, "d:e:s:f:i:j:n:" )) != EOF ) {
 		switch ( i ) {
 		case 'd':	/* turn on debugging */
 			ldap_debug = atoi( optarg );
 			break;
 
-		case 'e':	/* alternate etcdir (index cmd location) */
-			etcdir = strdup( optarg );
+		case 's':	/* alternate sbindir (index cmd location) */
+		case 'e':	/* accept -e for backwards compatibility */
+			sbindir = strdup( optarg );
 			break;
 
 		case 'f':	/* specify a tailor file */
@@ -150,7 +151,7 @@ main( int argc, char **argv )
 	 */
 
 	i = 0;
-	sprintf( cmd, "%s/%s", etcdir, ID2ENTRYCMD );
+	sprintf( cmd, "%s/%s", sbindir, ID2ENTRYCMD );
 	args[i++] = cmd;
 	args[i++] = "-i";
 	args[i++] = inputfile;
@@ -172,7 +173,7 @@ main( int argc, char **argv )
 	 */
 
 	i = 0;
-	sprintf( cmd, "%s/%s", etcdir, ID2CHILDRENCMD );
+	sprintf( cmd, "%s/%s", sbindir, ID2CHILDRENCMD );
 	args[i++] = cmd;
 	args[i++] = "-i";
 	args[i++] = inputfile;
@@ -194,7 +195,7 @@ main( int argc, char **argv )
 	 */
 
 	i = 0;
-	sprintf( cmd, "%s/%s", etcdir, INDEXCMD );
+	sprintf( cmd, "%s/%s", sbindir, INDEXCMD );
 	args[i++] = cmd;
 	args[i++] = "-i";
 	args[i++] = inputfile;
diff --git a/servers/slurpd/Make-template b/servers/slurpd/Make-template
index 04beedfaec264bf376dffec9dd1d73d11cd343af..17d627be35be8f6f6b54a59ea912af69e938f052 100644
--- a/servers/slurpd/Make-template
+++ b/servers/slurpd/Make-template
@@ -56,10 +56,10 @@ version.c: $(OBJS) $(LDIR)/liblber/liblber.a $(LDIR)/libldap/libldap.a
 	-e "s|%VERSION%|$${v}|" \
 	< Version.c > $@)
 
-install: $(ETCDIR) $(ETCDIR)/slurpd
+install: $(LIBEXECDIR) $(LIBEXECDIR)/slurpd
 
-$(ETCDIR)/slurpd:	slurpd
-	$(INSTALL) $(INSTALLFLAGS) -m 755 slurpd $(ETCDIR)
+$(LIBEXECDIR)/slurpd:	slurpd
+	$(INSTALL) $(INSTALLFLAGS) -m 755 slurpd $(LIBEXECDIR)
 
 lint:	FORCE
 	$(LINT) $(INCLUDES) $(DEFINES) $(SRCS)