diff -r 0dd02729b3b5 MoinMoin/Page.py
--- a/MoinMoin/Page.py	Sat Jan 09 02:40:08 2010 +0100
+++ b/MoinMoin/Page.py	Sat Jan 30 18:22:29 2010 +0100
@@ -34,7 +34,7 @@
     @license: GNU GPL, see COPYING for details.
 """
 
-import os, re, codecs
+import errno, os, re, codecs
 
 from MoinMoin import log
 logging = log.getLogger(__name__)
@@ -211,7 +211,6 @@
             try:
                 f = codecs.open(self._text_filename(), 'rb', config.charset)
             except IOError, er:
-                import errno
                 if er.errno == errno.ENOENT:
                     # just doesn't exist, return empty text (note that we
                     # never store empty pages, so this is detectable and also
@@ -679,7 +678,6 @@
         try:
             return os.path.getsize(self._text_filename(rev=rev))
         except EnvironmentError, e:
-            import errno
             if e.errno == errno.ENOENT:
                 return 0
             raise
@@ -1021,7 +1019,15 @@
             eventlog.EventLog(request).add(request, 'VIEWPAGE', {'pagename': self.page_name})
 
         # load the text
-        body = self.data
+        try:
+            body = self.data
+        except IOError, er:
+            if er.errno == errno.ENAMETOOLONG:
+                request.write(_('Pagename: "%s" too long')  % self.page_name)
+                return
+            else:
+                raise
+
         pi = self.pi
 
         if 'redirect' in pi and not (
