AddrlistClass.getaddress(): when parsing `:'s, in the loop, watch out
for gotonext() pushing self.pos past the end of the string.  This can
happen if the message has a To field like "To: :" and you call
msg.getaddrlist('to').
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index 662703b..7030ee7 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -553,10 +553,11 @@
             # address is a group
             returnlist = []
             
+            fieldlen = len(self.field)
             self.pos = self.pos + 1
             while self.pos < len(self.field):
                 self.gotonext()
-                if self.field[self.pos] == ';':
+                if self.pos < fieldlen and self.field[self.pos] == ';':
                     self.pos = self.pos + 1
                     break
                 returnlist = returnlist + self.getaddress()