Index: pyyaml/trunk/lib/yaml/reader.py
===================================================================
--- pyyaml/trunk/lib/yaml/reader.py	(revision 136)
+++ pyyaml/trunk/lib/yaml/reader.py	(revision 173)
@@ -121,7 +121,9 @@
 
     def peek(self, index=0):
-        if self.pointer+index+1 >= len(self.buffer):
+        try:
+            return self.buffer[self.pointer+index]
+        except IndexError:
             self.update(index+1)
-        return self.buffer[self.pointer+index]
+            return self.buffer[self.pointer+index]
 
     def prefix(self, length=1):
@@ -133,5 +135,5 @@
         if self.pointer+length+1 >= len(self.buffer):
             self.update(length+1)
-        for k in range(length):
+        while length:
             ch = self.buffer[self.pointer]
             self.pointer += 1
@@ -143,4 +145,5 @@
             elif ch != u'\uFEFF':
                 self.column += 1
+            length -= 1
 
     def get_mark(self):
