Adding an implicit resolver to a derived loader should not affect the base loader (fixes issue #57).
diff --git a/lib/yaml/resolver.py b/lib/yaml/resolver.py
index 6b5ab87..528fbc0 100644
--- a/lib/yaml/resolver.py
+++ b/lib/yaml/resolver.py
@@ -24,7 +24,10 @@
 
     def add_implicit_resolver(cls, tag, regexp, first):
         if not 'yaml_implicit_resolvers' in cls.__dict__:
-            cls.yaml_implicit_resolvers = cls.yaml_implicit_resolvers.copy()
+            implicit_resolvers = {}
+            for key in cls.yaml_implicit_resolvers:
+                implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:]
+            cls.yaml_implicit_resolvers = implicit_resolvers
         if first is None:
             first = [None]
         for ch in first:
diff --git a/lib3/yaml/resolver.py b/lib3/yaml/resolver.py
index 0eece25..02b82e7 100644
--- a/lib3/yaml/resolver.py
+++ b/lib3/yaml/resolver.py
@@ -25,7 +25,10 @@
     @classmethod
     def add_implicit_resolver(cls, tag, regexp, first):
         if not 'yaml_implicit_resolvers' in cls.__dict__:
-            cls.yaml_implicit_resolvers = cls.yaml_implicit_resolvers.copy()
+            implicit_resolvers = {}
+            for key in cls.yaml_implicit_resolvers:
+                implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:]
+            cls.yaml_implicit_resolvers = implicit_resolvers
         if first is None:
             first = [None]
         for ch in first: