@@ -663,17 +663,20 @@ elemToParPart ns element
663663 return $ BookMark bmId bmName
664664elemToParPart ns element
665665 | isElem ns "w" "hyperlink" element
666− , Just anchor <- findAttr (elemName ns "w" "anchor") element = do
666+ , Just relId <- findAttr (elemName ns "r" "id") element = do
667667 runs <- mapD (elemToRun ns) (elChildren element)
668− return $ InternalHyperLink anchor runs
668+ rels <- asks envRelationships
669+ case lookupRelationship relId rels of
670+ Just target -> do
671+ case findAttr (elemName ns "w" "anchor") element of
672+ Just anchor -> return $ ExternalHyperLink (target ++ '#':anchor) runs
673+ Nothing -> return $ ExternalHyperLink target runs
674+ Nothing -> return $ ExternalHyperLink "" runs
669675elemToParPart ns element
670676 | isElem ns "w" "hyperlink" element
671− , Just relId <- findAttr (elemName ns "r" "id") element = do
677+ , Just anchor <- findAttr (elemName ns "w" "anchor") element = do
672678 runs <- mapD (elemToRun ns) (elChildren element)
673− rels <- asks envRelationships
674− return $ case lookupRelationship relId rels of
675− Just target -> ExternalHyperLink target runs
676− Nothing -> ExternalHyperLink "" runs
679+ return $ InternalHyperLink anchor runs
677680elemToParPart ns element
678681 | isElem ns "m" "oMath" element =
679682 (eitherToD $ readOMML $ showElement element) >>= (return . PlainOMath)