diff --git a/Lib/fnmatch.py b/Lib/fnmatch.py
index 30c0a92..26ae4cc 100644
--- a/Lib/fnmatch.py
+++ b/Lib/fnmatch.py
@@ -16,6 +16,7 @@
 
 _cache = {}  # Maps text patterns to compiled regexen.
 _cacheb = {}  # Ditto for bytes patterns.
+_MAXCACHE = 100 # Maximum size of caches
 
 def fnmatch(name, pat):
     """Test whether FILENAME matches PATTERN.
@@ -48,6 +49,8 @@
             res = bytes(res_str, 'ISO-8859-1')
         else:
             res = translate(pat)
+        if len(cache) >= _MAXCACHE:
+            cache.clear()
         cache[pat] = regex = re.compile(res)
     return regex.match
 
diff --git a/Lib/test/test_fnmatch.py b/Lib/test/test_fnmatch.py
index 506c679..f2966ad 100644
--- a/Lib/test/test_fnmatch.py
+++ b/Lib/test/test_fnmatch.py
@@ -3,7 +3,7 @@
 from test import support
 import unittest
 
-from fnmatch import fnmatch, fnmatchcase
+from fnmatch import fnmatch, fnmatchcase, _MAXCACHE, _cache, _cacheb
 
 
 class FnmatchTestCase(unittest.TestCase):
@@ -55,6 +55,21 @@
         self.check_match(b'test\xff', b'te*\xff')
         self.check_match(b'foo\nbar', b'foo*')
 
+    def test_cache_clearing(self):
+        # check that caches do not grow too large
+        # http://bugs.python.org/issue7846
+
+        # string pattern cache
+        for i in range(_MAXCACHE + 1):
+            fnmatch('foo', '?' * i)
+
+        self.assertLessEqual(len(_cache), _MAXCACHE)
+
+        # bytes pattern cache
+        for i in range(_MAXCACHE + 1):
+            fnmatch(b'foo', b'?' * i)
+        self.assertLessEqual(len(_cacheb), _MAXCACHE)
+
 
 def test_main():
     support.run_unittest(FnmatchTestCase)
