diff --git a/src/calibre/ebooks/docx/to_html.py b/src/calibre/ebooks/docx/to_html.py
index cc1175bbce..59f40d7745 100644
--- a/src/calibre/ebooks/docx/to_html.py
+++ b/src/calibre/ebooks/docx/to_html.py
@@ -702,7 +702,13 @@ class Convert(object):
style = self.styles.resolve_run(run)
if style.vert_align in {'superscript', 'subscript'}:
- ans.tag = 'sub' if style.vert_align == 'subscript' else 'sup'
+ if ans.text or len(ans):
+ ans.tag = 'sub' if style.vert_align == 'subscript' else 'sup'
+ try:
+ if ans[0].tag == 'a' and ans[0].get('class', 'noteref') and ans[0][0].tag == 'sup' and ans.tag == 'sup':
+ ans[0][0].tag = 'span'
+ except Exception:
+ pass
if style.lang is not inherit:
lang = html_lang(style.lang)
if lang is not None and lang != self.doc_lang: