Starting to fix [JACKSON-756]

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)