diff --git a/src/mapper/java/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java b/src/mapper/java/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java
index 691c287..6c9c6c0 100644
--- a/src/mapper/java/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java
+++ b/src/mapper/java/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java
@@ -267,7 +267,8 @@
         if (contentDeser == null) { // not defined by annotation
             // One special type: EnumSet:
             if (EnumSet.class.isAssignableFrom(collectionClass)) {
-                return new EnumSetDeserializer(constructEnumResolver(contentType.getRawClass(), config));
+                return new EnumSetDeserializer(contentType.getRawClass(),
+                        createEnumDeserializer(config, p, contentType, property));
             }
             // But otherwise we can just use a generic value deserializer:
             // 'null' -> collections have no referring fields
diff --git a/src/mapper/java/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java b/src/mapper/java/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java
index fa15ed2..76dba4e 100644
--- a/src/mapper/java/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java
+++ b/src/mapper/java/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java
@@ -7,6 +7,7 @@
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonToken;
 import org.codehaus.jackson.map.DeserializationContext;
+import org.codehaus.jackson.map.JsonDeserializer;
 import org.codehaus.jackson.map.TypeDeserializer;
 import org.codehaus.jackson.map.util.EnumResolver;
 
@@ -26,17 +27,24 @@
 {
     protected final Class<Enum> _enumClass;
 
-    protected final EnumDeserializer _enumDeserializer;
+    protected final JsonDeserializer<Enum<?>> _enumDeserializer;
 
     @SuppressWarnings("unchecked" )
     public EnumSetDeserializer(EnumResolver enumRes)
     {
-        super(EnumSet.class);
-        _enumDeserializer = new EnumDeserializer(enumRes);
-        // this is fugly, but not sure of a better way...
-        _enumClass = (Class<Enum>) ((Class<?>) enumRes.getEnumClass());
+        // fugly, but what we can we do...
+        this((Class<Enum>) ((Class<?>) enumRes.getEnumClass()),
+                new EnumDeserializer(enumRes));
     }
 
+    @SuppressWarnings("unchecked" )
+    public EnumSetDeserializer(Class<?> enumClass, JsonDeserializer<?> deser)
+    {
+        super(EnumSet.class);
+        _enumClass = (Class<Enum>) enumClass;
+        _enumDeserializer = (JsonDeserializer<Enum<?>>) deser;
+    }
+    
     @SuppressWarnings("unchecked") 
     @Override
     public EnumSet<?> deserialize(JsonParser jp, DeserializationContext ctxt)
