diff --git a/src/calibre/ebooks/lrf/html/convert_from.py b/src/calibre/ebooks/lrf/html/convert_from.py
index 9ff749db0c..73a9a55694 100644
--- a/src/calibre/ebooks/lrf/html/convert_from.py
+++ b/src/calibre/ebooks/lrf/html/convert_from.py
@@ -778,11 +778,11 @@ class HTMLConverter(object, LoggingInterface):
@param css: A dict
'''
src = tag.string if hasattr(tag, 'string') else tag
- if len(src) > 32767:
+ if len(src) > 32760:
pos = 0
while pos < len(src):
- self.add_text(src[pos:pos+32767], css, pseudo_css, force_span_use)
- pos += 32767
+ self.add_text(src[pos:pos+32760], css, pseudo_css, force_span_use)
+ pos += 32760
return
src = src.replace('\r\n', '\n').replace('\r', '\n')
diff --git a/src/calibre/ebooks/lrf/pylrs/pylrf.py b/src/calibre/ebooks/lrf/pylrs/pylrf.py
index d0dbd4a609..02c575d0b0 100644
--- a/src/calibre/ebooks/lrf/pylrs/pylrf.py
+++ b/src/calibre/ebooks/lrf/pylrs/pylrf.py
@@ -118,7 +118,6 @@ def writeLineWidth(f, width):
def writeUnicode(f, string, encoding):
if isinstance(string, str):
string = string.decode(encoding)
-
string = string.encode("utf-16-le")
length = len(string)
if length > 65535:
diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py
index 525fd2aaa1..b21f27bad9 100644
--- a/src/calibre/gui2/library.py
+++ b/src/calibre/gui2/library.py
@@ -258,7 +258,10 @@ class BooksModel(QAbstractTableModel):
for i in range(1, k):
ids.extend([idx-i, idx+i])
ids = ids + [i for i in range(l, r, 1) if i not in ids]
- ids = [self.db.id(i) for i in ids]
+ try:
+ ids = [self.db.id(i) for i in ids]
+ except IndexError:
+ return
self.cover_cache.set_cache(ids)
def current_changed(self, current, previous, emit_signal=True):