diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c
index e02ef07dee25666ab6702cd7f32496070f049b64..862b93d0358450a3d3fc8d471f5592f07b98a12a 100644
--- a/src/sbbs3/sbbscon.c
+++ b/src/sbbs3/sbbscon.c
@@ -1564,6 +1564,19 @@ int main(int argc, char** argv)
 	
 		else {
 			char str[256];
+			struct passwd *pwent;
+
+			pwent=getpwnam(new_uid_name);
+			if(pwent != NULL) {
+				sprintf(str,"USER=%s",pwent->pw_name);
+				putenv(str);
+				sprintf(str,"HOME=%s",pwent->pw_dir);
+				putenv(str);
+			}
+			if(new_gid_name[0]) {
+				sprintf(str,"GROUP=%s",new_gid_name);
+				putenv(str);
+			}
 			sprintf(str,"Successfully changed user_id to %s", new_uid_name);
 			bbs_lputs(NULL,LOG_INFO,str);