Index: clientloop.c =================================================================== RCS file: /home/cjwatson/cvs/openssh/openssh/clientloop.c,v retrieving revision 1.18 diff -p -u -r1.18 clientloop.c --- clientloop.c 1 Feb 2008 21:53:32 -0000 1.18 +++ clientloop.c 12 Jun 2008 00:52:50 -0000 @@ -1980,7 +1980,8 @@ client_session2_setup(int id, int want_t } /* Transfer any environment variables from client to server */ - if (options.num_send_env != 0 && env != NULL) { + if (options.num_send_env != 0 && env != NULL && + !(datafellows & SSH_BUG_SENDENV)) { int i, j, matched; char *name, *val; Index: compat.c =================================================================== RCS file: /home/cjwatson/cvs/openssh/openssh/compat.c,v retrieving revision 1.1.1.7 diff -p -u -r1.1.1.7 compat.c --- compat.c 12 Jun 2007 11:03:10 -0000 1.1.1.7 +++ compat.c 12 Jun 2008 00:52:50 -0000 @@ -160,6 +160,7 @@ compat_datafellows(const char *version) SSH_BUG_SCANNER }, { "Probe-*", SSH_BUG_PROBE }, + { "mpSSH_0.0.1*", SSH_BUG_SENDENV }, { NULL, 0 } }; Index: compat.h =================================================================== RCS file: /home/cjwatson/cvs/openssh/openssh/compat.h,v retrieving revision 1.1.1.8 diff -p -u -r1.1.1.8 compat.h --- compat.h 12 Jun 2007 11:03:10 -0000 1.1.1.8 +++ compat.h 12 Jun 2008 00:52:50 -0000 @@ -57,6 +57,7 @@ #define SSH_BUG_FIRSTKEX 0x00800000 #define SSH_OLD_FORWARD_ADDR 0x01000000 #define SSH_BUG_RFWD_ADDR 0x02000000 +#define SSH_BUG_SENDENV 0x04000000 void enable_compat13(void); void enable_compat20(void); Index: ssh.c =================================================================== RCS file: /home/cjwatson/cvs/openssh/openssh/ssh.c,v retrieving revision 1.17 diff -p -u -r1.17 ssh.c --- ssh.c 2 Jun 2008 13:04:55 -0000 1.17 +++ ssh.c 12 Jun 2008 00:52:50 -0000 @@ -1426,7 +1426,8 @@ control_client(const char *path) buffer_append(&command, "\0", 1); buffer_put_cstring(&m, buffer_ptr(&command)); - if (options.num_send_env == 0 || environ == NULL) { + if (options.num_send_env == 0 || environ == NULL || + (datafellows & SSH_BUG_SENDENV)) { buffer_put_int(&m, 0); } else { /* Pass environment */