diff --git a/src/calibre/ebooks/mobi/reader.py b/src/calibre/ebooks/mobi/reader.py index 2de7ee97d4..760f9407cb 100644 --- a/src/calibre/ebooks/mobi/reader.py +++ b/src/calibre/ebooks/mobi/reader.py @@ -434,16 +434,15 @@ class MobiReader(object): oend = end l = self.mobi_html.find('<', end) r = self.mobi_html.find('>', end) - p = self.mobi_html.rfind('>', end) + anchor = '' if r > -1 and (r < l or l == end or l == -1): - end = r - anchor = ' filepos-id="filepos%d"' % oend - elif p > pos: - end = p - anchor = ' filepos-id="filepos%d"' % oend - else: - anchor = '' % oend - self.processed_html += self.mobi_html[pos:end] + anchor + p = self.mobi_html.rfind('<', 0, end + 1) + if p > -1 and self.mobi_html[p + 1] != '/': + anchor = ' filepos-id="filepos%d"' + end = r + else: + end = r + 1 + self.processed_html += self.mobi_html[pos:end] + (anchor % oend) pos = end self.processed_html += self.mobi_html[pos:]