diff -Pur vixie-cron-3.0.1.orig/Makefile vixie-cron-3.0.1/Makefile
--- vixie-cron-3.0.1.orig/Makefile	Sat Jun 27 17:01:27 1998
+++ vixie-cron-3.0.1/Makefile	Sat Jun 27 17:37:32 1998
@@ -107,7 +107,7 @@
 			|grep -v "constant argument to NOT" 2>&1
 
 cron		:	$(CRON_OBJ)
-			$(CC) $(LDFLAGS) -o cron $(CRON_OBJ) $(LIBS)
+			$(CC) $(LDFLAGS) -o cron $(CRON_OBJ) $(LIBS) -ltmpdir
 
 crontab		:	$(CRONTAB_OBJ)
 			$(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS)
--- vixie-cron-3.0.1.orig/do_command.c	Sat Jun 27 17:01:27 1998
+++ vixie-cron-3.0.1/do_command.c	Mon Jun 29 15:17:49 1998
@@ -28,7 +28,7 @@
 #if defined(SYSLOG)
 # include <syslog.h>
 #endif
-
+#include <tmpdir.h>
 
 static void		child_process __P((entry *, user *)),
 			do_univ __P((user *));
@@ -203,6 +203,24 @@
 		 */
 		do_univ(u);
 
+		/* create a temporary directory for the child */
+		{
+			struct passwd *p;
+			p=getpwuid(e->uid);
+			if (!p)
+			{
+				fprintf(stderr, "Unable to get passwd "
+					"entry for uid %i\n", e->uid);
+				_exit(ERROR_EXIT);
+			}				
+			if (mkusertemp(p->pw_name, p->pw_uid, p->pw_gid))
+			{
+				fprintf(stderr, "Unable to create temporary"
+					"directory for s\n", p->pw_name);
+				_exit(ERROR_EXIT);
+			}
+		}
+
 		/* set our directory, uid and gid.  Set gid first, since once
 		 * we set uid, we've lost root privledges.
 		 */

