diff -r e5fb197506d6 pypy/rlib/parsing/makepackrat.py
--- a/pypy/rlib/parsing/makepackrat.py	Sun Aug 21 11:31:11 2011 +0200
+++ b/pypy/rlib/parsing/makepackrat.py	Sun Aug 21 14:32:17 2011 +0200
@@ -251,9 +251,11 @@
         return "ErrorInformation(%s, %s)" % (self.pos, self.expected)
 
     def get_line_column(self, source):
-        uptoerror = source[:self.pos]
+        pos = self.pos
+        assert pos >= 0
+        uptoerror = source[:pos]
         lineno = uptoerror.count("\n")
-        columnno = self.pos - uptoerror.rfind("\n")
+        columnno = pos - uptoerror.rfind("\n")
         return lineno, columnno
 
     def nice_error_message(self, filename='<filename>', source=""):
