Index: lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockSkipWriter.java
===================================================================
--- lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockSkipWriter.java	(revision 1391073)
+++ lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockSkipWriter.java	(working copy)
@@ -50,7 +50,6 @@
   private long[] lastSkipDocPointer;
   private long[] lastSkipPosPointer;
   private long[] lastSkipPayPointer;
-  private int[] lastStartOffset;
   private int[] lastPayloadByteUpto;
 
   private final IndexOutput docOut;
@@ -62,7 +61,6 @@
   private long curPosPointer;
   private long curPayPointer;
   private int curPosBufferUpto;
-  private int curStartOffset;
   private int curPayloadByteUpto;
   private boolean fieldHasPositions;
   private boolean fieldHasOffsets;
@@ -81,7 +79,6 @@
       if (payOut != null) {
         lastSkipPayPointer = new long[maxSkipLevels];
       }
-      lastStartOffset = new int[maxSkipLevels];
       lastPayloadByteUpto = new int[maxSkipLevels];
     }
   }
@@ -99,9 +96,6 @@
     Arrays.fill(lastSkipDocPointer, docOut.getFilePointer());
     if (fieldHasPositions) {
       Arrays.fill(lastSkipPosPointer, posOut.getFilePointer());
-      if (fieldHasOffsets) {
-        Arrays.fill(lastStartOffset, 0);
-      }
       if (fieldHasPayloads) {
         Arrays.fill(lastPayloadByteUpto, 0);
       }
@@ -114,14 +108,13 @@
   /**
    * Sets the values for the current skip data. 
    */
-  public void bufferSkip(int doc, int numDocs, long posFP, long payFP, int posBufferUpto, int startOffset, int payloadByteUpto) throws IOException {
+  public void bufferSkip(int doc, int numDocs, long posFP, long payFP, int posBufferUpto, int payloadByteUpto) throws IOException {
     this.curDoc = doc;
     this.curDocPointer = docOut.getFilePointer();
     this.curPosPointer = posFP;
     this.curPayPointer = payFP;
     this.curPosBufferUpto = posBufferUpto;
     this.curPayloadByteUpto = payloadByteUpto;
-    this.curStartOffset = startOffset;
     bufferSkip(numDocs);
   }
   
@@ -149,11 +142,6 @@
         skipBuffer.writeVInt(curPayloadByteUpto);
       }
 
-      if (fieldHasOffsets) {
-        skipBuffer.writeVInt(curStartOffset - lastStartOffset[level]);
-        lastStartOffset[level] = curStartOffset;
-      }
-
       if (fieldHasOffsets || fieldHasPayloads) {
         skipBuffer.writeVInt((int) (curPayPointer - lastSkipPayPointer[level]));
         lastSkipPayPointer[level] = curPayPointer;
Index: lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsWriter.java
===================================================================
--- lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsWriter.java	(revision 1391073)
+++ lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsWriter.java	(working copy)
@@ -101,7 +101,6 @@
   private long lastBlockPosFP;
   private long lastBlockPayFP;
   private int lastBlockPosBufferUpto;
-  private int lastBlockStartOffset;
   private int lastBlockPayloadByteUpto;
 
   private int lastDocID;
@@ -232,7 +231,7 @@
       // if (DEBUG) {
       //   System.out.println("  bufferSkip at writeBlock: lastDocID=" + lastBlockDocID + " docCount=" + (docCount-1));
       // }
-      skipWriter.bufferSkip(lastBlockDocID, docCount, lastBlockPosFP, lastBlockPayFP, lastBlockPosBufferUpto, lastBlockStartOffset, lastBlockPayloadByteUpto);
+      skipWriter.bufferSkip(lastBlockDocID, docCount, lastBlockPosFP, lastBlockPayFP, lastBlockPosBufferUpto, lastBlockPayloadByteUpto);
     }
 
     final int docDelta = docID - lastDocID;
@@ -337,7 +336,6 @@
         }
         lastBlockPosFP = posOut.getFilePointer();
         lastBlockPosBufferUpto = posBufferUpto;
-        lastBlockStartOffset = lastStartOffset;
         lastBlockPayloadByteUpto = payloadByteUpto;
       }
       // if (DEBUG) {
Index: lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockSkipReader.java
===================================================================
--- lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockSkipReader.java	(revision 1391073)
+++ lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockSkipReader.java	(working copy)
@@ -58,12 +58,10 @@
   private long posPointer[];
   private long payPointer[];
   private int posBufferUpto[];
-  private int startOffset[];
   private int payloadByteUpto[];
 
   private long lastPosPointer;
   private long lastPayPointer;
-  private int lastStartOffset;
   private int lastPayloadByteUpto;
   private long lastDocPointer;
   private int lastPosBufferUpto;
@@ -80,11 +78,6 @@
       } else {
         payloadByteUpto = null;
       }
-      if (hasOffsets) {
-        startOffset = new int[maxSkipLevels];
-      } else {
-        startOffset = null;
-      }
       if (hasOffsets || hasPayloads) {
         payPointer = new long[maxSkipLevels];
       } else {
@@ -143,10 +136,6 @@
     return lastPayPointer;
   }
 
-  public int getStartOffset() {
-    return lastStartOffset;
-  }
-
   public int getPayloadByteUpto() {
     return lastPayloadByteUpto;
   }
@@ -165,9 +154,6 @@
     if (posPointer != null) {
       posPointer[level] = lastPosPointer;
       posBufferUpto[level] = lastPosBufferUpto;
-      if (startOffset != null) {
-        startOffset[level] = lastStartOffset;
-      }
       if (payloadByteUpto != null) {
         payloadByteUpto[level] = lastPayloadByteUpto;
       }
@@ -194,9 +180,6 @@
       if (payPointer != null) {
         lastPayPointer = payPointer[level];
       }
-      if (startOffset != null) {
-        lastStartOffset = startOffset[level];
-      }
       if (payloadByteUpto != null) {
         lastPayloadByteUpto = payloadByteUpto[level];
       }
@@ -231,10 +214,6 @@
         payloadByteUpto[level] = skipStream.readVInt();
       }
 
-      if (startOffset != null) {
-        startOffset[level] += skipStream.readVInt();
-      }
-
       if (payPointer != null) {
         payPointer[level] += skipStream.readVInt();
       }
Index: lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsReader.java
===================================================================
--- lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsReader.java	(revision 1391073)
+++ lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsReader.java	(working copy)
@@ -1314,7 +1314,7 @@
           posPendingFP = skipper.getPosPointer();
           payPendingFP = skipper.getPayPointer();
           posPendingCount = skipper.getPosBufferUpto();
-          lastStartOffset = skipper.getStartOffset();
+          lastStartOffset = 0; // new document
           payloadByteUpto = skipper.getPayloadByteUpto();
         }
         nextSkipDoc = skipper.getNextSkipDoc();
Index: lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsFormat.java
===================================================================
--- lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsFormat.java	(revision 1391073)
+++ lucene/codecs/src/java/org/apache/lucene/codecs/block/BlockPostingsFormat.java	(working copy)
@@ -202,7 +202,7 @@
  *       <sup>NumSkipLevels-1</sup>, SkipLevel&gt;, SkipDatum?</li>
  *   <li>SkipLevel --&gt; &lt;SkipDatum&gt; <sup>TrimmedDocFreq/(PackedBlockSize^(Level + 1))</sup></li>
  *   <li>SkipDatum --&gt; DocSkip, DocFPSkip, &lt;PosFPSkip, PosBlockOffset, PayLength?, 
- *                        OffsetStart?, PayFPSkip?&gt;?, SkipChildLevelPointer?</li>
+ *                        PayFPSkip?&gt;?, SkipChildLevelPointer?</li>
  *   <li>PackedDocDeltaBlock, PackedFreqBlock --&gt; {@link PackedInts PackedInts}</li>
  *   <li>DocDelta, Freq, DocSkip, DocFPSkip, PosFPSkip, PosBlockOffset, PayLength, OffsetStart, PayFPSkip 
  *       --&gt; 
@@ -250,7 +250,6 @@
  *       equal to PosBlockOffset). Same as DocFPSkip, the file offsets are relative to the start of 
  *       current term's TermFreqs, and stored as a difference sequence.</li>
  *   <li>PayLength indicates the length of last payload.</li>
- *   <li>OffsetStart indicates the first value of last offset pair.</li>
  * </ul>
  * </dd>
  * </dl>
