diff -r 6aca4d1c744e -r 9baf4330d88f mercurial/sshpeer.py --- a/mercurial/sshpeer.py Thu Feb 28 10:12:26 2013 -0800 +++ b/mercurial/sshpeer.py Fri Mar 08 16:59:36 2013 -0800 @@ -70,7 +70,10 @@ (_serverquote(remotecmd), _serverquote(self.path)))) ui.note(_('running %s\n') % cmd) cmd = util.quotecommand(cmd) - self.pipeo, self.pipei, self.pipee = util.popen3(cmd) + + # while self.subprocess isn't used, having it allows the subprocess to + # to clean up correctly later + self.pipeo, self.pipei, self.pipee, self.subprocess = util.popen4(cmd) # skip any noise generated by remote shell self._callstream("hello")