Sez The Dragon:
	Ok, I fixed the quotes, along with a bug or two.
	Also added another exception.
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index cf229f3..a45d95a 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -35,6 +35,7 @@
 CRLF="\r\n"
 
 # used for exceptions 
+SMTPServerDisconnected="Server not connected"
 SMTPSenderRefused="Sender address refused"
 SMTPRecipientsRefused="All Recipients refused"
 SMTPDataError="Error transmoitting message data"
@@ -89,8 +90,11 @@
     def send(self, str):
         """Send `str' to the server."""
         if self.debuglevel > 0: print 'send:', `str`
-        self.sock.send(str)
-    
+	if self.sock:
+            self.sock.send(str)
+        else:
+	    raise SMTPServerDisconnected
+ 
     def putcmd(self, cmd, args=""):
         """Send a command to the server.
         """
@@ -104,9 +108,8 @@
         - server response code (e.g. '250', or such, if all goes well)
           Note: returns -1 if it can't read responce code.
         - server response string corresponding to response code
-		(note : multiline responces converted to a single, multiline 
-                 string)
-
+		(note : multiline responces converted to a single, 
+                 multiline string)
         """
         resp=[]
 	self.file = self.sock.makefile('rb')
@@ -125,7 +128,7 @@
 
 	errmsg = string.join(resp,"\n")
 	if self.debuglevel > 0: 
-           print 'reply: retcode (%s); Msg: %s' % (errcode,errmsg)
+            print 'reply: retcode (%s); Msg: %s' % (errcode,errmsg)
         return errcode, errmsg
     
     def docmd(self, cmd, args=""):
@@ -148,7 +151,7 @@
 	return code
 
     def help(self):
-        """ SMTP 'help' command. Returns help text from server """
+	""" SMTP 'help' command. Returns help text from server """
 	self.putcmd("help")
 	(code,msg)=self.getreply()
 	return msg
@@ -180,9 +183,9 @@
         # ps, I don't know why I have to do it this way... doing: 
 	# quotepat=re.compile(r"^[.]",re.M)
 	# msg=re.sub(quotepat,"..",msg)
-        # should work, but it dosen't (it doubles the number of any   
+        # should work, but it dosen't (it doubles the number of any 
         # contiguous series of .'s at the beginning of a line, 
-        # instead of just adding one. )
+        #instead of just adding one. )
 	quotepat=re.compile(r"^[.]+",re.M)
         def m(pat):
           return "."+pat.group(0)
@@ -207,24 +210,22 @@
                - to_addrs :  a list of addresses to send this mail to
                - msg : the message to send. 
 
-	This method will return normally if the mail is accepted for at
-        least one recipiant .Otherwise it will throw an exception (either
-        SMTPSenderRefused,SMTPRecipientsRefused, or SMTPDataError)
+	This method will return normally if the mail is accepted for at least 
+        one recipiant.
+        Otherwise it will throw an exception (either SMTPSenderRefused,
+          SMTPRecipientsRefused, or SMTPDataError)
 
-	That is, if this method does not throw an excception, then someone 
+	That is, if this method does not throw an exception, then someone 
         should get your mail.
 
-  	It returns a dictionary , with one entry for each recipient that 
-        was refused. 
+  	It returns a dictionary , with one entry for each recipient that was 
+        refused. 
 
         example:
       
          >>> import smtplib
          >>> s=smtplib.SMTP("localhost")
-         >>> tolist= [ "one@one.org",
-         ...           "two@two.org",
-         ...           "three@three.org",
-         ...           "four@four.org"]
+         >>> tolist=["one@one.org","two@two.org","three@three.org","four@four.org"]
          >>> msg = '''
          ... From: Me@my.org
          ... Subject: testin'...
@@ -234,10 +235,10 @@
          { "three@three.org" : ( 550 ,"User unknown" ) }
          >>> s.quit()
         
-         In the above example, the message was accepted for delivery to three 
-         of the four addresses, and one was rejected, with the error code 550.
-         If all addresses are accepted, then the method will return an
-         empty dictionary.  
+         In the above example, the message was accepted for delivery to 
+         three of the four addresses, and one was rejected, with the error
+         code 550. If all addresses are accepted, then the method
+         will return an empty dictionary.  
          """
 
 	if not self.helo_resp:
@@ -250,7 +251,7 @@
         for each in to_addrs:
 	    (code,resp)=self.rcpt(each)
 	    if (code <> 250) and (code <> 251):
-                senderr[each]=(code,resp)
+                senderrs[each]=(code,resp)
         if len(senderrs)==len(to_addrs):
 	    #th' server refused all our recipients
             self.rset()