diff --git a/src/main/java/org/eclipse/yasson/internal/model/customization/ordering/PropertyOrdering.java b/src/main/java/org/eclipse/yasson/internal/model/customization/ordering/PropertyOrdering.java
index 31e0954..948f362 100644
--- a/src/main/java/org/eclipse/yasson/internal/model/customization/ordering/PropertyOrdering.java
+++ b/src/main/java/org/eclipse/yasson/internal/model/customization/ordering/PropertyOrdering.java
@@ -53,7 +53,7 @@
      */
     public List<PropertyModel> orderProperties(List<PropertyModel> properties, ClassModel classModel) {
         Map<String, PropertyModel> byReadName = new HashMap<>();
-        properties.stream().forEach(propertyModel -> byReadName.put(propertyModel.getReadName(), propertyModel));
+        properties.stream().forEach(propertyModel -> byReadName.put(propertyModel.getPropertyName(), propertyModel));
 
         String[] order = classModel.getClassCustomization().getPropertyOrder();
         List<PropertyModel> sortedProperties = new ArrayList<>();
diff --git a/src/main/java/org/eclipse/yasson/internal/serializer/CollectionDeserializer.java b/src/main/java/org/eclipse/yasson/internal/serializer/CollectionDeserializer.java
index 4a4587d..53c52b8 100644
--- a/src/main/java/org/eclipse/yasson/internal/serializer/CollectionDeserializer.java
+++ b/src/main/java/org/eclipse/yasson/internal/serializer/CollectionDeserializer.java
@@ -56,6 +56,8 @@
         if (rawType.isInterface()) {
             final T x = createInterfaceInstance(rawType);
             if (x != null) return x;
+        } else if (EnumSet.class.isAssignableFrom(rawType)) {
+            return (T) EnumSet.noneOf((Class<Enum>) collectionValueType);
         }
         return builder.getJsonbContext().getInstanceCreator().createInstance(rawType);
     }
diff --git a/src/test/java/org/eclipse/yasson/customization/PropertyOrderTest.java b/src/test/java/org/eclipse/yasson/customization/PropertyOrderTest.java
index 844f5e7..bd413d6 100644
--- a/src/test/java/org/eclipse/yasson/customization/PropertyOrderTest.java
+++ b/src/test/java/org/eclipse/yasson/customization/PropertyOrderTest.java
@@ -105,8 +105,8 @@
 
     @JsonbPropertyOrder(
             {
-                    "from",
-                    "count"
+                    "fromIndex",
+                    "numberOfItems"
             }
     )
     public class Range {
diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/collections/CollectionsTest.java b/src/test/java/org/eclipse/yasson/defaultmapping/collections/CollectionsTest.java
index a6fb699..b17079d 100644
--- a/src/test/java/org/eclipse/yasson/defaultmapping/collections/CollectionsTest.java
+++ b/src/test/java/org/eclipse/yasson/defaultmapping/collections/CollectionsTest.java
@@ -213,6 +213,7 @@
 
         final String result = jsonb.toJson(languageEnumSet);
         assertTrue("[\"Czech\",\"Slovak\"]".equals(result) || "[\"Slovak\",\"Czech\"]".equals(result));
+        assertEquals(languageEnumSet, jsonb.fromJson(result, new TestTypeToken<EnumSet<Language>>() {}.getType()));
     }
 
     @Test
