--- /home/ck/Files/download/lucene/2.0/lucene-2.0.0/src/java/org/apache/lucene/index/ParallelReader.java	2006-05-26 18:54:19.000000000 +0200
+++ ParallelReader.java	2006-06-19 12:07:47.000000000 +0200
@@ -270,11 +273,23 @@
       termEnum.close();                           // close old termEnum
 
       // find the next field, if any
-      field = (String)fieldToReader.tailMap(field).firstKey();
-      if (field != null) {
-        termEnum = ((IndexReader)fieldToReader.get(field)).terms();
-        return true;
-      }
+        do {
+            Iterator it = fieldToReader.tailMap(field).keySet().iterator();
+            it.next(); // skip current entry
+            if(it.hasNext()) {
+                field = (String) it.next();
+                termEnum = ((IndexReader) fieldToReader.get(field))
+                    .terms(new Term(field, ""));
+                Term t = termEnum.term();
+                if(t == null || !field.equals(t.field())) {
+                    // skip fields without terms
+                    continue;
+                }
+                return true;
+            } else {
+                break;
+            }
+        } while (true);
 
       return false;                               // no more fields
 
