diff -Pur rshd.orig/Makefile rshd/Makefile
--- rshd.orig/Makefile	Sat Jun 27 02:58:11 1998
+++ rshd/Makefile	Sat Jun 27 03:02:32 1998
@@ -16,6 +16,8 @@
 LIBS += -ldl -lpam -lpam_misc
 endif
 
+LIBS += -ltmpdir
+
 rshd: $(OBJS)
 	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
 
diff -Pur rshd.orig/rshd.c rshd/rshd.c
--- rshd.orig/rshd.c	Sat Jun 27 02:58:11 1998
+++ rshd/rshd.c	Sat Jun 27 03:01:58 1998
@@ -88,6 +88,8 @@
 static int retcode;
 #endif /* USE_PAM */
 
+#include <tmpdir.h>
+
 #define	OPTIONS	"ahlLn"
 
 static int keepalive = 1;
@@ -522,6 +524,8 @@
 	/* if PAM, already done */
 	initgroups(pwd->pw_name, pwd->pw_gid);
 #endif
+	if (mkusertemp(pwd->pw_name, pwd->pw_uid, pwd->pw_gid))
+		syslog(LOG_ERR, "mkusertemp failed: %m");
 	setuid((uid_t)pwd->pw_uid);
 	environ = envinit;
 	strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);

