// Note that it is not sufficient to simply compare file offsets because
        // the offsets do not reflect modified line information (through //line
        // comments).
-       if e.Filename < f.Filename {
-               return true
+       if e.Filename != f.Filename {
+               return e.Filename < f.Filename
        }
-       if e.Filename == f.Filename {
-               if e.Line < f.Line {
-                       return true
-               }
-               if e.Line == f.Line {
-                       if e.Column < f.Column {
-                               return true
-                       }
-                       if e.Column == f.Column {
-                               if p[i].Msg < p[j].Msg {
-                                       return true
-                               }
-                       }
-               }
+       if e.Line != f.Line {
+               return e.Line < f.Line
+       }
+       if e.Column != f.Column {
+               return e.Column < f.Column
        }
-       return false
+       return p[i].Msg < p[j].Msg
 }
 
 // Sort sorts an ErrorList. *Error entries are sorted by position,