Replace yield with sequence class. Fixes #1009803.
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index 0ad1077..e3895bd 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -892,15 +892,19 @@
     def __call__(self, *args):
         self.__call_list.append((self.__name, args))
 
-def MultiCallIterator(results):
+class MultiCallIterator:
     """Iterates over the results of a multicall. Exceptions are
     thrown in response to xmlrpc faults."""
 
-    for i in results:
-        if type(i) == type({}):
-            raise Fault(i['faultCode'], i['faultString'])
-        elif type(i) == type([]):
-            yield i[0]
+    def __init__(self, results):
+        self.results = results
+
+    def __getitem__(self, i):
+        item = self.results[i]
+        if type(item) == type({}):
+            raise Fault(item['faultCode'], item['faultString'])
+        elif type(item) == type([]):
+            return item[0]
         else:
             raise ValueError,\
                   "unexpected type in multicall result"
@@ -1412,11 +1416,20 @@
     # simple test program (from the XML-RPC specification)
 
     # server = ServerProxy("http://localhost:8000") # local server
-    server = ServerProxy("http://betty.userland.com")
+    server = ServerProxy("http://time.xmlrpc.com/RPC2")
 
     print server
 
     try:
-        print server.examples.getStateName(41)
+        print server.currentTime.getCurrentTime()
+    except Error, v:
+        print "ERROR", v
+
+    multi = MultiCall(server)
+    multi.currentTime.getCurrentTime()
+    multi.currentTime.getCurrentTime()
+    try:
+        for response in multi():
+            print response
     except Error, v:
         print "ERROR", v