diff --git a/auth1.c b/auth1.c
index ca28895..8553bfa 100644
--- a/auth1.c
+++ b/auth1.c
@@ -10,7 +10,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: auth1.c,v 1.38 2002/03/18 17:50:31 provos Exp $");
+RCSID("$OpenBSD: auth1.c,v 1.39 2002/03/19 14:27:39 markus Exp $");
 
 #include "xmalloc.h"
 #include "rsa.h"
@@ -24,7 +24,6 @@
 #include "auth.h"
 #include "channels.h"
 #include "session.h"
-#include "misc.h"
 #include "uidswap.h"
 #include "monitor_wrap.h"
 
@@ -359,7 +358,6 @@
 do_authentication(void)
 {
 	Authctxt *authctxt;
-	struct passwd *pw = NULL, *pwent;
 	u_int ulen;
 	char *p, *user, *style = NULL;
 
@@ -382,21 +380,12 @@
 	authctxt->style = style;
 
 	/* Verify that the user is a valid user. */
-	pwent = PRIVSEP(getpwnamallow(user));
-	if (pwent) {
+	if ((authctxt->pw = PRIVSEP(getpwnamallow(user))) != NULL)
 		authctxt->valid = 1;
-		pw = pwcopy(pwent);
-	} else {
+	else
 		debug("do_authentication: illegal user %s", user);
-		pw = NULL;
-	}
-	/* Free memory */
-	if (use_privsep && pwent != NULL)
-		pwfree(pwent);
 
-	authctxt->pw = pw;
-
-	setproctitle("%s%s", pw ? user : "unknown",
+	setproctitle("%s%s", authctxt->pw ? user : "unknown",
 	    use_privsep ? " [net]" : "");
 
 #ifdef USE_PAM
@@ -408,7 +397,8 @@
 	 * the server. (Unless you are running Windows)
 	 */
 #ifndef HAVE_CYGWIN
-	if (!use_privsep && getuid() != 0 && pw && pw->pw_uid != getuid())
+	if (!use_privsep && getuid() != 0 && authctxt->pw &&
+	    authctxt->pw->pw_uid != getuid())
 		packet_disconnect("Cannot change user when server not running as root.");
 #endif
 
