Index: src/java/org/apache/lucene/index/MultiLevelSkipListReader.java
===================================================================
--- src/java/org/apache/lucene/index/MultiLevelSkipListReader.java	(revision 555400)
+++ src/java/org/apache/lucene/index/MultiLevelSkipListReader.java	(working copy)
@@ -172,9 +172,11 @@
     this.docCount = df;
     Arrays.fill(skipDoc, 0);
     Arrays.fill(numSkipped, 0);
+    Arrays.fill(childPointer, 0);
+    
     haveSkipped = false;
     for (int i = 1; i < numberOfSkipLevels; i++) {
-      skipStream[0] = null;
+      skipStream[i] = null;
     }
   }
   
Index: src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
===================================================================
--- src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(revision 555400)
+++ src/test/org/apache/lucene/index/TestMultiLevelSkipList.java	(working copy)
@@ -57,18 +57,21 @@
     writer.close();
 
     IndexReader reader = IndexReader.open(dir);
-    SegmentTermPositions tp = (SegmentTermPositions) reader.termPositions(term);
+    SegmentTermPositions tp = (SegmentTermPositions) reader.termPositions();
     tp.freqStream = new CountingStream(tp.freqStream);
-    
-    tp.next();
 
-    checkSkipTo(tp, 14, 185); // no skips
-    checkSkipTo(tp, 17, 190); // one skip on level 0
-    checkSkipTo(tp, 287, 200); // one skip on level 1, two on level 0
+    for (int i = 0; i < 2; i++) {
+      counter = 0;
+      tp.seek(term);
+
+      checkSkipTo(tp, 14, 185); // no skips
+      checkSkipTo(tp, 17, 190); // one skip on level 0
+      checkSkipTo(tp, 287, 200); // one skip on level 1, two on level 0
     
-    // this test would fail if we had only one skip level,
-    // because than more bytes would be read from the freqStream
-    checkSkipTo(tp, 4800, 250);// one skip on level 2
+      // this test would fail if we had only one skip level,
+      // because than more bytes would be read from the freqStream
+      checkSkipTo(tp, 4800, 250);// one skip on level 2
+    }
   }
 
   public void checkSkipTo(TermPositions tp, int target, int maxCounter) throws IOException {
