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 15:42:09 2015 +0300 @@ -40,11 +40,13 @@ def getlines(filename, module_globals=No if filename in cache: entry = cache[filename] - if len(entry) == 1: - return updatecache(filename, module_globals) - return cache[filename][2] - else: + if len(entry) != 1: + return cache[filename][2] + try: return updatecache(filename, module_globals) + except MemoryError: + clearcache() + return [] def checkcache(filename=None):