diff --git a/dateutil/tz/_factories.py b/dateutil/tz/_factories.py
index 7c16a4a3ce300c02acb28c36d5aa5349bc8c830c_ZGF0ZXV0aWwvdHovX2ZhY3Rvcmllcy5weQ==..86bf652555ee3e945c641c6b5f3345cbb12fa49b_ZGF0ZXV0aWwvdHovX2ZhY3Rvcmllcy5weQ== 100644
--- a/dateutil/tz/_factories.py
+++ b/dateutil/tz/_factories.py
@@ -1,5 +1,5 @@
 from datetime import timedelta
-import weakref
+
 
 class _TzSingleton(type):
     def __init__(cls, *args, **kwargs):
@@ -19,7 +19,7 @@
 
 class _TzOffsetFactory(_TzFactory):
     def __init__(cls, *args, **kwargs):
-        cls.__instances = weakref.WeakValueDictionary()
+        cls.__instances = {}
 
     def __call__(cls, name, offset):
         if isinstance(offset, timedelta):
@@ -36,7 +36,7 @@
 
 class _TzStrFactory(_TzFactory):
     def __init__(cls, *args, **kwargs):
-        cls.__instances = weakref.WeakValueDictionary()
+        cls.__instances = {}
 
     def __call__(cls, s, posix_offset=False):
         key = (s, posix_offset)
diff --git a/dateutil/tz/tz.py b/dateutil/tz/tz.py
index 7c16a4a3ce300c02acb28c36d5aa5349bc8c830c_ZGF0ZXV0aWwvdHovdHoucHk=..86bf652555ee3e945c641c6b5f3345cbb12fa49b_ZGF0ZXV0aWwvdHovdHoucHk= 100644
--- a/dateutil/tz/tz.py
+++ b/dateutil/tz/tz.py
@@ -13,7 +13,6 @@
 import sys
 import os
 import bisect
-import weakref
 
 import six
 from six import string_types
@@ -1529,7 +1528,7 @@
         """
         def __init__(self):
 
-            self.__instances = weakref.WeakValueDictionary()
+            self.__instances = {}
             self._cache_lock = _thread.allocate_lock()
 
         def __call__(self, name=None):