diff --git a/linkcheck/checker/urlbase.py b/linkcheck/checker/urlbase.py
index <HASH>..<HASH> 100644
--- a/linkcheck/checker/urlbase.py
+++ b/linkcheck/checker/urlbase.py
@@ -920,7 +920,7 @@ class UrlBase (object):
         try:
             app = winutil.get_word_app()
             try:
-                doc = winutil.open_word(app, filename)
+                doc = winutil.open_wordfile(app, filename)
                 try:
                     for link in doc.Hyperlinks:
                         url_data = get_url_from(link.Address,
diff --git a/linkcheck/winutil.py b/linkcheck/winutil.py
index <HASH>..<HASH> 100644
--- a/linkcheck/winutil.py
+++ b/linkcheck/winutil.py
@@ -65,6 +65,9 @@ def get_word_app ():
     """Return open Word.Application handle, or None on error."""
     if not has_word():
         return None
+    # Since this function is called from different threads, initialize
+    # the COM layer.
+    pythoncom.CoInitialize()
     import win32com.client
     app = win32com.client.gencache.EnsureDispatch("Word.Application")
     app.Visible = False
Fix errors in Word file parsing.