diff --git a/src/pty.c b/src/pty.c
index 4968e6a..0cf1dce 100644
--- a/src/pty.c
+++ b/src/pty.c
@@ -382,6 +382,7 @@ _vte_pty_run_on_pty (struct vte_pty_child_setup_data *data,
 	}
 #ifdef HAVE_FORK
 	else {
+	        int i;
 		*pid = fork();
 		switch (*pid) {
 			case -1:
@@ -392,6 +393,8 @@ _vte_pty_run_on_pty (struct vte_pty_child_setup_data *data,
 						g_strerror (errno));
 				ret = FALSE;
 			case 0: /* child */
+			        for (i = 0; envp[i] != NULL; i++)
+				   putenv(g_strdup(envp[i]));
 				vte_pty_child_setup (data);
 				break;
 			default: /* parent */
