diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py index 3769320dcd..c9d931c918 100644 --- a/src/calibre/ebooks/mobi/writer.py +++ b/src/calibre/ebooks/mobi/writer.py @@ -1634,7 +1634,7 @@ class MobiWriter(object): now = int(time.time()) nrecords = len(self._records) self._write(title, pack('>HHIIIIII', 0, 0, now, now, 0, 0, 0, 0), - 'BOOK', 'MOBI', pack('>IIH', nrecords, 0, nrecords)) + 'BOOK', 'MOBI', pack('>IIH', (2*nrecords)-1, 0, nrecords)) offset = self._tell() + (8 * nrecords) + 2 for i, record in enumerate(self._records): self._write(pack('>I', offset), '\0', pack('>I', 2*i)[1:]) diff --git a/src/calibre/ebooks/mobi/writer2/main.py b/src/calibre/ebooks/mobi/writer2/main.py index 2c57a9e461..7421bcb82b 100644 --- a/src/calibre/ebooks/mobi/writer2/main.py +++ b/src/calibre/ebooks/mobi/writer2/main.py @@ -550,7 +550,7 @@ class MobiWriter(object): now = int(time.time()) nrecords = len(self.records) self.write(title, pack(b'>HHIIIIII', 0, 0, now, now, 0, 0, 0, 0), - b'BOOK', b'MOBI', pack(b'>IIH', nrecords, 0, nrecords)) + b'BOOK', b'MOBI', pack(b'>IIH', (2*nrecords)-1, 0, nrecords)) offset = self.tell() + (8 * nrecords) + 2 for i, record in enumerate(self.records): self.write(pack(b'>I', offset), b'\0', pack(b'>I', 2*i)[1:])