--- src/java/org/apache/poi/hssf/model/InternalWorkbook.java (revision 1330076) +++ src/java/org/apache/poi/hssf/model/InternalWorkbook.java (working copy) @@ -753,8 +753,10 @@ */ public void removeSheet(int sheetIndex) { if (boundsheets.size() > sheetIndex) { - records.remove(records.getBspos() - (boundsheets.size() - 1) + sheetIndex); - boundsheets.remove(sheetIndex); + BoundSheetRecord removedRecord = boundsheets.remove(sheetIndex); + + // keep consistency between "boundsheets" and "records" + records.remove(removedRecord); fixTabIdRecord(); }