e7a395
diff --git a/Mailman/Archiver/Makefile.in b/Mailman/Archiver/Makefile.in
e7a395
index 65e46cb..dc3a1c6 100644
e7a395
--- a/Mailman/Archiver/Makefile.in
e7a395
+++ b/Mailman/Archiver/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -47,7 +46,7 @@ pipermail.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -63,8 +62,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Bouncers/Makefile.in b/Mailman/Bouncers/Makefile.in
e7a395
index 8865a9f..8878cd9 100644
e7a395
--- a/Mailman/Bouncers/Makefile.in
e7a395
+++ b/Mailman/Bouncers/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Cgi/Makefile.in b/Mailman/Cgi/Makefile.in
e7a395
index 47929e9..e20c07e 100644
e7a395
--- a/Mailman/Cgi/Makefile.in
e7a395
+++ b/Mailman/Cgi/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -47,7 +46,7 @@ CGI_MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -63,8 +62,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(CGIDIR); \
e7a395
         done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Commands/Makefile.in b/Mailman/Commands/Makefile.in
e7a395
index 645d78b..12bbc1b 100644
e7a395
--- a/Mailman/Commands/Makefile.in
e7a395
+++ b/Mailman/Commands/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Gui/Makefile.in b/Mailman/Gui/Makefile.in
e7a395
index 000441e..9273b8a 100644
e7a395
--- a/Mailman/Gui/Makefile.in
e7a395
+++ b/Mailman/Gui/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Handlers/Makefile.in b/Mailman/Handlers/Makefile.in
e7a395
index 71e5576..56ee2eb 100644
e7a395
--- a/Mailman/Handlers/Makefile.in
e7a395
+++ b/Mailman/Handlers/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Logging/Makefile.in b/Mailman/Logging/Makefile.in
e7a395
index e185775..ad5c128 100644
e7a395
--- a/Mailman/Logging/Makefile.in
e7a395
+++ b/Mailman/Logging/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/MTA/Makefile.in b/Mailman/MTA/Makefile.in
e7a395
index 0338806..e1de296 100644
e7a395
--- a/Mailman/MTA/Makefile.in
e7a395
+++ b/Mailman/MTA/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Mailman/Makefile.in b/Mailman/Makefile.in
e7a395
index 93c7efd..45439f0 100644
e7a395
--- a/Mailman/Makefile.in
e7a395
+++ b/Mailman/Makefile.in
e7a395
@@ -20,8 +20,6 @@
e7a395
 
e7a395
 # Variables set by configure
e7a395
 
e7a395
-VERSION=	@VERSION@
e7a395
-
e7a395
 VPATH=		@srcdir@
e7a395
 srcdir= 	@srcdir@
e7a395
 bindir= 	@bindir@
e7a395
@@ -30,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -48,7 +45,7 @@ SUBDIRS=	Cgi Logging Archiver Handlers Bouncers Queue MTA Gui Commands
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -79,12 +76,6 @@ install: install-here
e7a395
 	    (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-	@for d in $(SUBDIRS); \
e7a395
-	do \
e7a395
-	    (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) finish); \
e7a395
-	done
e7a395
-
e7a395
 clean:
e7a395
 	for d in $(SUBDIRS); \
e7a395
 	do \
e7a395
diff --git a/Mailman/Queue/Makefile.in b/Mailman/Queue/Makefile.in
e7a395
index 179f3d9..e0e97ad 100644
e7a395
--- a/Mailman/Queue/Makefile.in
e7a395
+++ b/Mailman/Queue/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -45,7 +44,7 @@ MODULES=	*.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,8 +60,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/Makefile.in b/Makefile.in
e7a395
index 40e04f5..eb40844 100644
e7a395
--- a/Makefile.in
e7a395
+++ b/Makefile.in
e7a395
@@ -61,11 +61,10 @@ SUBDIRS=	bin cron misc Mailman scripts src templates messages tests
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
-DIRSETGID=	chmod g+s
e7a395
 
e7a395
 DATE = $(shell python -c 'import time; print time.strftime("%d-%b-%Y"),')
e7a395
 LANGPACK = README-I18N.en templates messages
e7a395
@@ -85,14 +84,24 @@ install: doinstall update
e7a395
 
e7a395
 doinstall: $(SUBDIRS)
e7a395
 	@echo "Creating architecture independent directories..."
e7a395
+	dir=$(DESTDIR)$(prefix); \
e7a395
+	if test ! -d $$dir; then \
e7a395
+		echo "Creating directory hierarchy $$dir"; \
e7a395
+		$(INSTALL) -d -m $(DIRMODE) $$dir; \
e7a395
+	else true; \
e7a395
+	fi;
e7a395
+	dir=$(DESTDIR)$(var_prefix); \
e7a395
+	if test ! -d $$dir; then \
e7a395
+		echo "Creating directory hierarchy $$dir"; \
e7a395
+		$(INSTALL) -d -m $(DIRMODE) $$dir; \
e7a395
+	else true; \
e7a395
+	fi;
e7a395
 	@for d in $(VAR_DIRS); \
e7a395
 	do \
e7a395
 	    dir=$(DESTDIR)$(var_prefix)/$$d; \
e7a395
 	    if test ! -d $$dir; then \
e7a395
 		echo "Creating directory hierarchy $$dir"; \
e7a395
-		$(srcdir)/mkinstalldirs $$dir; \
e7a395
-		chmod $(DIRMODE) $$dir; \
e7a395
-		$(DIRSETGID) $$dir; \
e7a395
+		$(INSTALL) -d -m $(DIRMODE) $$dir; \
e7a395
 	    else true; \
e7a395
 	    fi; \
e7a395
 	done
e7a395
@@ -102,9 +111,7 @@ doinstall: $(SUBDIRS)
e7a395
 	    dir=$(DESTDIR)$(prefix)/$$d; \
e7a395
 	    if test ! -d $$dir; then \
e7a395
 		echo "Creating directory hierarchy $$dir"; \
e7a395
-		$(srcdir)/mkinstalldirs $$dir; \
e7a395
-		chmod $(DIRMODE) $$dir; \
e7a395
-		$(DIRSETGID) $$dir; \
e7a395
+		$(INSTALL) -d -m $(DIRMODE) $$dir; \
e7a395
 	    else true; \
e7a395
 	    fi; \
e7a395
 	done
e7a395
@@ -114,9 +121,7 @@ doinstall: $(SUBDIRS)
e7a395
 	    dir=$(DESTDIR)$(exec_prefix)/$$d; \
e7a395
 	    if test ! -d $$dir; then \
e7a395
 		echo "Creating directory hierarchy $$dir"; \
e7a395
-		$(srcdir)/mkinstalldirs $$dir; \
e7a395
-		chmod $(DIRMODE) $$dir; \
e7a395
-		$(DIRSETGID) $$dir; \
e7a395
+		$(INSTALL) -d -m $(DIRMODE) $$dir; \
e7a395
 	    else true; \
e7a395
 	    fi; \
e7a395
 	done
e7a395
diff --git a/bin/Makefile.in b/bin/Makefile.in
e7a395
index 22c24b0..d795333 100644
e7a395
--- a/bin/Makefile.in
e7a395
+++ b/bin/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -56,7 +55,7 @@ BUILDDIR=	../build/bin
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -72,8 +71,6 @@ install:
e7a395
 	    $(INSTALL) -m $(EXEMODE) $(BUILDDIR)/$$f $(DESTDIR)$(SCRIPTSDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/cron/Makefile.in b/cron/Makefile.in
e7a395
index 2a7c8fd..c14d119 100644
e7a395
--- a/cron/Makefile.in
e7a395
+++ b/cron/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -68,8 +67,6 @@ install:
e7a395
 	    $(INSTALL) -m $(EXEMODE) $(BUILDDIR)/$$f $(DESTDIR)$(CRONDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/messages/Makefile.in b/messages/Makefile.in
e7a395
index 2bbec3f..0b8b7d6 100644
e7a395
--- a/messages/Makefile.in
e7a395
+++ b/messages/Makefile.in
e7a395
@@ -32,7 +32,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -43,7 +42,6 @@ OPT=		@OPT@
e7a395
 CFLAGS=		$(OPT) $(DEFS)
e7a395
 PACKAGEDIR= 	$(prefix)/messages
e7a395
 SHELL=		/bin/sh
e7a395
-DIRSETGID=	chmod g+s
e7a395
 MSGFMT= 	@PYTHON@ ../build/bin/msgfmt.py
e7a395
 MSGMERGE=	msgmerge
e7a395
 
e7a395
@@ -60,7 +58,7 @@ TARGETS=	$(MOFILES)
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -90,9 +88,8 @@ doinstall: mofiles
e7a395
 	do \
e7a395
 	    dir=$(DESTDIR)$(prefix)/$$d; \
e7a395
 	    echo "Creating language directory $$dir"; \
e7a395
-	    $(srcdir)/../mkinstalldirs $$dir; \
e7a395
-	    chmod $(DIRMODE) $$dir; \
e7a395
-	    $(DIRSETGID) $$dir; \
e7a395
+	    $(INSTALL) -d -m $(DIRMODE) `dirname $$dir`; \
e7a395
+	    $(INSTALL) -d -m $(DIRMODE) $$dir; \
e7a395
 	done
e7a395
 	@for d in $(LANGUAGES); \
e7a395
 	do \
e7a395
@@ -113,8 +110,6 @@ doinstall: mofiles
e7a395
 
e7a395
 mofiles: $(MOFILES)
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 	-rm -f */LC_MESSAGES/mailman.mo
e7a395
 
e7a395
diff --git a/misc/Makefile.in b/misc/Makefile.in
e7a395
index 5125cd8..af99c04 100644
e7a395
--- a/misc/Makefile.in
e7a395
+++ b/misc/Makefile.in
e7a395
@@ -30,7 +30,6 @@ var_prefix=	@VAR_PREFIX@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 PYTHON=		@PYTHON@
e7a395
 
e7a395
@@ -62,7 +61,7 @@ PACKAGES= $(EMAILPKG) $(JACODECSPKG) $(KOCODECSPKG)
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 DATAMODE=	664
e7a395
@@ -101,8 +100,6 @@ install-packages:
e7a395
 	    (cd $(PKGDIR)/$$p ; umask 02 ; PYTHONPATH=$(PYTHONLIBDIR) $(PYTHON) $(SETUPCMD)); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
e7a395
index 49b82ec..cea250c 100644
e7a395
--- a/scripts/Makefile.in
e7a395
+++ b/scripts/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -49,7 +48,7 @@ SCRIPTS=	bounces confirm driver join leave owner post request
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -68,8 +67,6 @@ install:
e7a395
 	$(INSTALL) -m $(FILEMODE) $(srcdir)/join    $(DESTDIR)$(SCRIPTSDIR)/subscribe
e7a395
 	$(INSTALL) -m $(FILEMODE) $(srcdir)/leave   $(DESTDIR)$(SCRIPTSDIR)/unsubscribe
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/src/Makefile.in b/src/Makefile.in
e7a395
index ce52356..7ed820b 100644
e7a395
--- a/src/Makefile.in
e7a395
+++ b/src/Makefile.in
e7a395
@@ -28,7 +28,6 @@ bindir= 	@bindir@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 PYTHON=  	@PYTHON@
e7a395
 
e7a395
@@ -65,10 +64,9 @@ COMMON_FLAGS=	-DPREFIX="\"$(prefix)\"" \
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
-EXEMODE=	755
e7a395
+DIRMODE=	2775
e7a395
+EXEMODE=	2755
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
-DIRSETGID=	chmod g+s
e7a395
 
e7a395
 # Fixed definitions
e7a395
 
e7a395
@@ -112,20 +110,10 @@ install: all
e7a395
 	do \
e7a395
 	    exe=$(DESTDIR)$(CGIDIR)/$$f$(CGIEXT); \
e7a395
 	    $(INSTALL_PROGRAM) $$f $$exe; \
e7a395
-	    $(DIRSETGID) $$exe; \
e7a395
 	done
e7a395
 	for f in $(MAIL_PROGS); \
e7a395
 	do \
e7a395
 	    $(INSTALL_PROGRAM) $$f $(DESTDIR)$(MAILDIR); \
e7a395
-	    $(DIRSETGID) $(DESTDIR)$(MAILDIR)/$$f; \
e7a395
-	done
e7a395
-
e7a395
-finish:
e7a395
-	-for f in $(SUID_CGI_PROGS); \
e7a395
-	do \
e7a395
-	    exe=$(DESTDIR)$(CGIDIR)/$$f$(CGIEXT); \
e7a395
-	    chown $(MAILMAN_USER) $$exe; \
e7a395
-	    chmod u+s $$exe; \
e7a395
 	done
e7a395
 
e7a395
 clean:
e7a395
diff --git a/templates/Makefile.in b/templates/Makefile.in
e7a395
index 3dfee3a..b23d7c1 100644
e7a395
--- a/templates/Makefile.in
e7a395
+++ b/templates/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 TRUE=		@TRUE@
e7a395
 
e7a395
@@ -48,7 +47,7 @@ LANGUAGES=	ar ast ca cs da de el en es et eu fi fr gl he hr hu ia it ja \
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -61,15 +60,13 @@ all:
e7a395
 install:
e7a395
 	for d in $(LANGUAGES); \
e7a395
 	do \
e7a395
-	    $(srcdir)/../mkinstalldirs $(DESTDIR)$(TEMPLATEDIR)/$$d; \
e7a395
+	    $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(TEMPLATEDIR)/$$d; \
e7a395
 	    for f in $(srcdir)/$$d/*.html $(srcdir)/$$d/*.txt; \
e7a395
 	    do \
e7a395
 	    	$(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(TEMPLATEDIR)/$$d; \
e7a395
 	    done; \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/tests/Makefile.in b/tests/Makefile.in
e7a395
index 26d6e31..ca92425 100644
e7a395
--- a/tests/Makefile.in
e7a395
+++ b/tests/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -46,7 +45,7 @@ EXECS=  	$(srcdir)/onebounce.py $(srcdir)/fblast.py
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -71,8 +70,6 @@ install:
e7a395
 	    (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/tests/bounces/Makefile.in b/tests/bounces/Makefile.in
e7a395
index 5798097..f7014cb 100644
e7a395
--- a/tests/bounces/Makefile.in
e7a395
+++ b/tests/bounces/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -46,7 +45,7 @@ BOUNCE_FILES=	$(srcdir)/*.txt
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -60,8 +59,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(BOUNCEDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean:
e7a395
diff --git a/tests/msgs/Makefile.in b/tests/msgs/Makefile.in
e7a395
index 736d721..edef5ae 100644
e7a395
--- a/tests/msgs/Makefile.in
e7a395
+++ b/tests/msgs/Makefile.in
e7a395
@@ -28,7 +28,6 @@ exec_prefix=	@exec_prefix@
e7a395
 DESTDIR=
e7a395
 
e7a395
 CC=		@CC@
e7a395
-CHMOD=  	@CHMOD@
e7a395
 INSTALL=	@INSTALL@
e7a395
 
e7a395
 DEFS=   	@DEFS@
e7a395
@@ -46,7 +45,7 @@ MSG_FILES=	$(srcdir)/*.txt
e7a395
 # Modes for directories and executables created by the install
e7a395
 # process.  Default to group-writable directories but
e7a395
 # user-only-writable for executables.
e7a395
-DIRMODE=	775
e7a395
+DIRMODE=	2775
e7a395
 EXEMODE=	755
e7a395
 FILEMODE=	644
e7a395
 INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
e7a395
@@ -60,8 +59,6 @@ install:
e7a395
 	    $(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(MSGSDIR); \
e7a395
 	done
e7a395
 
e7a395
-finish:
e7a395
-
e7a395
 clean:
e7a395
 
e7a395
 distclean: