diff --git a/Lib/linecache.py b/Lib/linecache.py
index 7f249a0..50a0c1b 100644
--- a/Lib/linecache.py
+++ b/Lib/linecache.py
@@ -7,7 +7,7 @@
 
 import sys
 import os
-import tokenize
+import re
 
 __all__ = ["getline", "clearcache", "checkcache"]
 
@@ -121,11 +121,27 @@
                     pass
         else:
             # No luck
+##          print '*** Cannot stat', filename, ':', msg
             return []
-    with open(fullname, 'rb') as fp:
-        coding, line = tokenize.detect_encoding(fp.readline)
-    with open(fullname, 'r', encoding=coding) as fp:
+##  print("Refreshing cache for %s..." % fullname)
+    try:
+        fp = open(fullname, 'rU')
         lines = fp.readlines()
+        fp.close()
+    except Exception as msg:
+##      print '*** Cannot open', fullname, ':', msg
+        return []
+    coding = "utf-8"
+    for line in lines[:2]:
+        m = re.search(r"coding[:=]\s*([-\w.]+)", line)
+        if m:
+            coding = m.group(1)
+            break
+    try:
+        lines = [line if isinstance(line, str) else str(line, coding)
+                 for line in lines]
+    except:
+        pass  # Hope for the best
     size, mtime = stat.st_size, stat.st_mtime
     cache[filename] = size, mtime, lines, fullname
     return lines
