diff -r a2df4baa112b Lib/linecache.py --- a/Lib/linecache.py Wed Apr 01 13:06:18 2015 +0300 +++ b/Lib/linecache.py Wed Apr 01 14:19:51 2015 +0300 @@ -40,11 +40,16 @@ def getlines(filename, module_globals=No if filename in cache: entry = cache[filename] - if len(entry) == 1: + if len(entry) != 1: + return cache[filename][2] + try: + return updatecache(filename, module_globals) + except MemoryError: + clearcache() + try: return updatecache(filename, module_globals) - return cache[filename][2] - else: - return updatecache(filename, module_globals) + except MemoryError: + return [] def checkcache(filename=None):