diff --git a/src/calibre/gui2/tweak_book/widgets.py b/src/calibre/gui2/tweak_book/widgets.py
index d2788703d6..dce7f3a6ab 100644
--- a/src/calibre/gui2/tweak_book/widgets.py
+++ b/src/calibre/gui2/tweak_book/widgets.py
@@ -251,13 +251,19 @@ class ImportForeign(Dialog): # {{{
# Quick Open {{{
def make_highlighted_text(emph, text, positions):
- positions = sorted(set(positions) - {-1}, reverse=True)
- for p in positions:
- ch = get_char(text, p)
- text = '%s%s%s' % (prepare_string_for_xml(text[:p]), emph, ch, prepare_string_for_xml(text[p+len(ch):]))
+ positions = sorted(set(positions) - {-1})
+ if positions:
+ parts = []
+ pos = 0
+ for p in positions:
+ ch = get_char(text, p)
+ parts.append(prepare_string_for_xml(text[pos:p]))
+ parts.append('%s' % (emph, prepare_string_for_xml(ch)))
+ pos = p + len(ch)
+ parts.append(prepare_string_for_xml(text[pos:]))
+ return ''.join(parts)
return text
-
class Results(QWidget):
EMPH = "color:magenta; font-weight:bold"