diff --git a/hush.c b/hush.c
index 1cb5f39..d0b30eb 100644
--- a/hush.c
+++ b/hush.c
@@ -1089,11 +1089,21 @@
 	thejob->next = NULL;
 	thejob->running_progs = thejob->num_progs;
 	thejob->stopped_progs = 0;
+	thejob->text = xmalloc(MAX_LINE);
+
+	//if (pi->progs[0] && pi->progs[0].argv && pi->progs[0].argv[0])
+	{
+		char *bar=thejob->text;
+		char **foo=pi->progs[0].argv;
+		while(foo && *foo) {
+			bar += sprintf(bar, "%s ", *foo++);
+		}
+	}
 
 	/* we don't wait for background thejobs to return -- append it 
 	   to the list of backgrounded thejobs and leave it alone */
-	printf("[%d] %d\n", pi->jobid, pi->pgrp);
-	last_bg_pid = pi->pgrp;
+	printf("[%d] %d\n", thejob->jobid, thejob->progs[0].pid);
+	last_bg_pid = thejob->progs[0].pid;
 }
 
 /* remove a backgrounded job from a jobset */
@@ -1169,8 +1179,7 @@
 			pi->progs[prognum].is_stopped = 1;
 
 			if (pi->stopped_progs == pi->num_progs) {
-				printf(JOB_STATUS_FORMAT, pi->jobid, "Stopped",
-						pi->text);
+				printf(JOB_STATUS_FORMAT, pi->jobid, "Stopped", pi->text);
 			}
 		}
 	}
diff --git a/shell/hush.c b/shell/hush.c
index 1cb5f39..d0b30eb 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -1089,11 +1089,21 @@
 	thejob->next = NULL;
 	thejob->running_progs = thejob->num_progs;
 	thejob->stopped_progs = 0;
+	thejob->text = xmalloc(MAX_LINE);
+
+	//if (pi->progs[0] && pi->progs[0].argv && pi->progs[0].argv[0])
+	{
+		char *bar=thejob->text;
+		char **foo=pi->progs[0].argv;
+		while(foo && *foo) {
+			bar += sprintf(bar, "%s ", *foo++);
+		}
+	}
 
 	/* we don't wait for background thejobs to return -- append it 
 	   to the list of backgrounded thejobs and leave it alone */
-	printf("[%d] %d\n", pi->jobid, pi->pgrp);
-	last_bg_pid = pi->pgrp;
+	printf("[%d] %d\n", thejob->jobid, thejob->progs[0].pid);
+	last_bg_pid = thejob->progs[0].pid;
 }
 
 /* remove a backgrounded job from a jobset */
@@ -1169,8 +1179,7 @@
 			pi->progs[prognum].is_stopped = 1;
 
 			if (pi->stopped_progs == pi->num_progs) {
-				printf(JOB_STATUS_FORMAT, pi->jobid, "Stopped",
-						pi->text);
+				printf(JOB_STATUS_FORMAT, pi->jobid, "Stopped", pi->text);
 			}
 		}
 	}
