diff --git a/GNUmakefile b/GNUmakefile
index cc26d99..c123d21 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -75,6 +75,7 @@ else
 	$(INSTALL) -m 755 -d $(PCP_VAR_DIR)
 	$(INSTALL) -m 755 -d $(PCP_SHARE_DIR)
 endif
+	$(INSTALL) -m 1777 -d $(PCP_TMP_DIR)
 	$(INSTALL) -m 755 -d $(PCP_BINADM_DIR)
 	$(INSTALL) -m 755 -d $(PCP_SHARE_DIR)/lib
 	$(INSTALL) -m 755 -d $(PCP_SHARE_DIR)/examples
diff --git a/build/rpm/pcp.spec.in b/build/rpm/pcp.spec.in
index 98a75d1..e2d0512 100644
--- a/build/rpm/pcp.spec.in
+++ b/build/rpm/pcp.spec.in
@@ -226,7 +226,7 @@ building Performance Metric API (PMAPI) tools using Python.
 
 %prep
 %setup -q
-%configure --with-rcdir=/etc/rc.d/init.d
+%configure --with-rcdir=/etc/rc.d/init.d --with-tmpdir=/var/lib/pcp/tmp
 touch config.done
 
 %clean
diff --git a/src/pmcd/rc_pmcd b/src/pmcd/rc_pmcd
index d737286..8b60532 100644
--- a/src/pmcd/rc_pmcd
+++ b/src/pmcd/rc_pmcd
@@ -98,8 +98,7 @@ _reboot_setup()
     #
     if [ ! -d "$PCP_RUN_DIR" ]
     then
-	mkdir -p "$PCP_RUN_DIR"
-	chmod 755 "$PCP_RUN_DIR"
+	mkdir -p -m 755 "$PCP_RUN_DIR"
     fi
 
     # setup and clean up base directories and house-keeping for tracking
@@ -109,7 +108,7 @@ _reboot_setup()
     #
     if [ ! -d "$PCP_TMP_DIR/pmlogger" ]
     then
-	mkdir -p "$PCP_TMP_DIR/pmlogger"
+	mkdir -p -m 1777 "$PCP_TMP_DIR/pmlogger"
     else
 	rm -rf $tmp/ent $tmp/pid
 	here=`pwd`
@@ -124,14 +123,12 @@ _reboot_setup()
 	rm -f $tmp/ent $tmp/pid
 	cd "$here"
     fi
-    chmod 1777 "$PCP_TMP_DIR/pmlogger"
 
     # base directory for Memory Mapped Value PMDA and clients
     #
     if [ ! -d "$PCP_TMP_DIR/mmv" ]
     then
-	mkdir -p "$PCP_TMP_DIR/mmv"
-	chmod 1777 "$PCP_TMP_DIR/mmv"
+	mkdir -p -m 1777 "$PCP_TMP_DIR/mmv"
     fi
 
     # Rebuild PMNS?
diff --git a/src/pmdas/bash/GNUmakefile b/src/pmdas/bash/GNUmakefile
index 0143cac..48e398a 100644
--- a/src/pmdas/bash/GNUmakefile
+++ b/src/pmdas/bash/GNUmakefile
@@ -47,6 +47,7 @@ install:	default
 	$(INSTALL) -m 644 domain.h $(PMDADIR)/domain.h
 	$(INSTALL) -m 644 bashproc.sh $(PCP_SHARE_DIR)/lib/bashproc.sh
 	$(INSTALL) -m 644 pcp.sh $(PCP_ETC_DIR)/pcp.sh
+	$(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/pmdabash
 endif
 
 $(IAM)$(EXECSUFFIX):	$(OBJECTS)
diff --git a/src/pmdas/bash/Install b/src/pmdas/bash/Install
index abdb08c..5cb784d 100644
--- a/src/pmdas/bash/Install
+++ b/src/pmdas/bash/Install
@@ -28,8 +28,7 @@ pmda_interface=5
 if [ ! -e "$PCP_TMP_DIR/pmdabash" ]
 then
     echo "creating $PCP_TMP_DIR/pmdabash"
-    mkdir -p "$PCP_TMP_DIR/pmdabash"
-    chmod 1777 "$PCP_TMP_DIR/pmdabash"
+    mkdir -p -m 1777 "$PCP_TMP_DIR/pmdabash"
 fi
 
 pmdaSetup
diff --git a/src/pmdas/mmv/GNUmakefile b/src/pmdas/mmv/GNUmakefile
index 5132d05..302c212 100644
--- a/src/pmdas/mmv/GNUmakefile
+++ b/src/pmdas/mmv/GNUmakefile
@@ -47,6 +47,7 @@ install_pcp install: default
 	$(INSTALL) -m 755 $(TARGETS) Install Remove $(PMDADIR)
 	$(INSTALL) -m 644 pmns $(PMDADIR)/root_mmv
 	$(INSTALL) -m 644 root_mmv $(PCP_VAR_DIR)/pmns/root_mmv
+	$(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/mmv
 
 $(CMDTARGET):	$(OBJECTS)
 
diff --git a/src/pmdas/mmv/Install b/src/pmdas/mmv/Install
index ce33d2e..d8f148b 100755
--- a/src/pmdas/mmv/Install
+++ b/src/pmdas/mmv/Install
@@ -28,8 +28,7 @@ pmns_source=root_mmv
 if [ ! -e "$PCP_TMP_DIR/mmv" ]
 then
     echo "creating $PCP_TMP_DIR/mmv"
-    mkdir -p "$PCP_TMP_DIR/mmv"
-    chmod 1777 "$PCP_TMP_DIR/mmv"
+    mkdir -p -m 1777 "$PCP_TMP_DIR/mmv"
 fi
 
 pmdaSetup
diff --git a/src/pmie/GNUmakefile b/src/pmie/GNUmakefile
index 918ae9e..c62b869 100644
--- a/src/pmie/GNUmakefile
+++ b/src/pmie/GNUmakefile
@@ -42,10 +42,11 @@ install::	default
 	$(INSTALL) -m 644 stomp.install $(CFG_DIR)/stomp
 	$(INSTALL) -m 644 crontab.install $(CFG_DIR)/crontab
 	$(INSTALL) -m 644 config.default.install $(CFG_DIR)/config.default
-	$(INSTALL) -m 755 rc_pmie $(PCP_RC_DIR)/pmie
 	$(INSTALL) -m 755 pmie_check.sh $(PCP_BINADM_DIR)/pmie_check
 	$(INSTALL) -m 755 pmie_daily.sh $(PCP_BINADM_DIR)/pmie_daily
 	$(INSTALL) -m 755 pmie2col $(PCP_BIN_DIR)/pmie2col
+	$(INSTALL) -m 755 rc_pmie $(PCP_RC_DIR)/pmie
+	$(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/pmie
 
 include $(BUILDRULES)
 
diff --git a/src/pmie/rc_pmie b/src/pmie/rc_pmie
index de0e0c8..381fd84 100644
--- a/src/pmie/rc_pmie
+++ b/src/pmie/rc_pmie
@@ -90,9 +90,9 @@ _reboot_setup()
 {
     # base directories and house-keeping for pmie instances
     #
-    if [ ! -d $PCP_TMP_DIR/pmie ]
+    if [ ! -d "$PCP_TMP_DIR/pmie" ]
     then
-	mkdir -p $PCP_TMP_DIR/pmie
+	mkdir -p -m 1777 "$PCP_TMP_DIR/pmie"
     else
 	rm -rf $tmp/ent $tmp/pid
 	here=`pwd`
@@ -105,7 +105,6 @@ _reboot_setup()
 	rm -f $tmp/ent $tmp/pid
 	cd "$here"
     fi
-    chmod 1777 $PCP_TMP_DIR/pmie
 
     [ ! -d $LOGDIR ] && mkdir -p $LOGDIR
 }
diff --git a/src/pmlogger/GNUmakefile b/src/pmlogger/GNUmakefile
index 6a0faca..23c810c 100644
--- a/src/pmlogger/GNUmakefile
+++ b/src/pmlogger/GNUmakefile
@@ -37,6 +37,7 @@ include $(BUILDRULES)
 install:	$(CMDTARGET) $(OTHERS)
 	$(INSTALL) -m 755 $(CMDTARGET) $(PCP_BINADM_DIR)/$(CMDTARGET)
 	$(INSTALL) -m 755 rc_pmlogger $(PCP_RC_DIR)/pmlogger
+	$(INSTALL) -m 1777 -d $(PCP_TMP_DIR)/pmlogger
 
 YFLAGS += -v
 gram.tab.h gram.tab.c:	gram.y
