diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 079f128..a6224e0 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -220,13 +220,15 @@
     ehlo_resp = None
     does_esmtp = 0
 
-    def __init__(self, host = '', port = 0):
+    def __init__(self, host = '', port = 0, local_hostname = None):
         """Initialize a new instance.
 
         If specified, `host' is the name of the remote host to which to
         connect.  If specified, `port' specifies the port to which to connect.
         By default, smtplib.SMTP_PORT is used.  An SMTPConnectError is raised
-        if the specified `host' doesn't respond correctly.
+        if the specified `host' doesn't respond correctly.  If specified,
+	`local_hostname` is used as the FQDN of the local host.  By default,
+	the local hostname is found using gethostbyname().
 
         """
         self.esmtp_features = {}
@@ -234,6 +236,10 @@
             (code, msg) = self.connect(host, port)
             if code != 220:
                 raise SMTPConnectError(code, msg)
+        if local_hostname:
+                self.local_hostname = local_hostname
+        else:
+                self.local_hostname = socket.getfqdn()
 
     def set_debuglevel(self, debuglevel):
         """Set the debug output level.
@@ -356,10 +362,7 @@
         Hostname to send for this command defaults to the FQDN of the local
         host.
         """
-        if name:
-            self.putcmd("helo", name)
-        else:
-            self.putcmd("helo", socket.getfqdn())
+        self.putcmd("helo", name or self.local_hostname)
         (code,msg)=self.getreply()
         self.helo_resp=msg
         return (code,msg)
@@ -370,10 +373,7 @@
         host.
         """
         self.esmtp_features = {}
-        if name:
-            self.putcmd("ehlo", name)
-        else:
-            self.putcmd("ehlo", socket.getfqdn())
+        self.putcmd("ehlo", name or self.local_hostname)
         (code,msg)=self.getreply()
         # According to RFC1869 some (badly written)
         # MTA's will disconnect on an ehlo. Toss an exception if
