Implement iterator protocol.
diff --git a/Lib/fileinput.py b/Lib/fileinput.py
index c18995b..870322c 100644
--- a/Lib/fileinput.py
+++ b/Lib/fileinput.py
@@ -166,7 +166,10 @@
         self.nextfile()
         self._files = ()
 
-    def __getitem__(self, i):
+    def __iter__(self):
+        return self
+
+    def next(self):
         try:
             line = self._buffer[self._bufindex]
         except IndexError:
@@ -176,12 +179,18 @@
             self._lineno += 1
             self._filelineno += 1
             return line
-        if i != self._lineno:
-            raise RuntimeError, "accessing lines out of order"
         line = self.readline()
         if not line:
-            raise IndexError, "end of input reached"
+            raise StopIteration
         return line
+        
+    def __getitem__(self, i):
+        if i != self._lineno:
+            raise RuntimeError, "accessing lines out of order"
+        try:
+            return self.next()
+        except StopIteration:
+            raise IndexError, "end of input reached"
 
     def nextfile(self):
         savestdout = self._savestdout