diff --git a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
index 23fb2df..ac68800 100644
--- a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
+++ b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
@@ -21,6 +21,7 @@
 import java.lang.reflect.Array;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Enumeration;
 import java.util.List;
 import java.util.Map;
 
@@ -113,13 +114,14 @@
 
             generator.writeStartObject(key);
 
-            for(final Map.Entry<String, Object> prop : cfg.getProperties().entrySet()) {
-                final String name = prop.getKey();
+            final Enumeration<String> e = cfg.getProperties().keys();
+            while ( e.hasMoreElements() ) {
+                final String name = e.nextElement();
                 if ( Configuration.PROP_ARTIFACT_ID.equals(name) ) {
                     continue;
                 }
 
-                final Object val = prop.getValue();
+                final Object val = cfg.getProperties().get(name);
 
                 String typePostFix = null;
                 final Object typeCheck;
