diff --git a/geronimo-jcdi_2.0_spec/src/main/java/javax/enterprise/inject/se/SeContainerInitializer.java b/geronimo-jcdi_2.0_spec/src/main/java/javax/enterprise/inject/se/SeContainerInitializer.java
index 6504061..2c2976d 100644
--- a/geronimo-jcdi_2.0_spec/src/main/java/javax/enterprise/inject/se/SeContainerInitializer.java
+++ b/geronimo-jcdi_2.0_spec/src/main/java/javax/enterprise/inject/se/SeContainerInitializer.java
@@ -21,6 +21,7 @@
 
 
 import java.lang.annotation.Annotation;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.ServiceLoader;
 
@@ -43,18 +44,23 @@
      */
     public static SeContainerInitializer newInstance()
     {
-        ServiceLoader<SeContainerInitializer> serviceLoader =
-                ServiceLoader.load(SeContainerInitializer.class, SeContainerInitializer.class.getClassLoader());
-        long exactSize = serviceLoader.spliterator().getExactSizeIfKnown();
-        if(exactSize == 0)
+        // TODO: OSGi support -> ProviderLocator or is there something better these days?
+        final Iterator<SeContainerInitializer> serviceLoader =
+                ServiceLoader.load(SeContainerInitializer.class, SeContainerInitializer.class.getClassLoader())
+                .iterator();
+
+        if (!serviceLoader.hasNext())
         {
             throw new IllegalStateException("No valid implementation of SeContainerInitializer found via ServiceLoader");
         }
-        else if(exactSize > 1)
+
+        final SeContainerInitializer initializer = serviceLoader.next();
+        if (serviceLoader.hasNext())
         {
-            throw new IllegalStateException("Multiple implementations ("+exactSize+") of SeContainerInitializer found via ServiceLoader");
+            throw new IllegalStateException("Multiple implementations of SeContainerInitializer found via ServiceLoader");
         }
-        return serviceLoader.iterator().next();
+
+        return initializer;
     }
 
     /**
