DELTASPIKE-1408 in some situations CDI.current() doesn't work in Weld3

So we try a fallback onto CDI-1.0 tricks to resolve the BeanManager.
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
index e988f57..313bb9b 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
@@ -26,6 +26,11 @@
 {
     interface BeanManagerIntegration
     {
+        /**
+         * Whether to use CDI.current() if available.
+         * This might fail in some CDI containers in some situations.
+         * Try switching to 'false' to enforce the 'old' DeltaSpike BeanManager lookup.
+         */
         Boolean DELEGATE_LOOKUP =
                 ConfigResolver.resolve("deltaspike.bean-manager.delegate_lookup")
                         .as(Boolean.class)
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
index 117f13f..5897b59 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
@@ -186,7 +186,8 @@
         setBeanManagerProvider(this);
 
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != null)
+        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != null &&
+            resolveBeanManagerViaStaticHelper() != null)
         {
             return;
         }
@@ -208,7 +209,11 @@
         // CDI#current delegation enabled, skip everything
         if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != null)
         {
-            return resolveBeanManagerViaStaticHelper();
+            BeanManager bm = resolveBeanManagerViaStaticHelper();
+            if (bm != null)
+            {
+                return bm;
+            }
         }
 
         BeanManagerInfo bmi = getBeanManagerInfo(ClassUtils.getClassLoader(null));
@@ -274,7 +279,8 @@
     public void cleanupFinalBeanManagers(@Observes AfterDeploymentValidation adv)
     {
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != null)
+        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != null &&
+            resolveBeanManagerViaStaticHelper() != null)
         {
             return;
         }
diff --git a/deltaspike/parent/code/pom.xml b/deltaspike/parent/code/pom.xml
index c807d77..4a10e2b 100644
--- a/deltaspike/parent/code/pom.xml
+++ b/deltaspike/parent/code/pom.xml
@@ -695,7 +695,7 @@
 
             <properties>
                 <!-- Actual Weld version used with this profile -->
-                <weld.version>3.0.4.Final</weld.version>
+                <weld.version>3.1.3.Final</weld.version>
                 <cdicontainer.version>weld-${weld.version}</cdicontainer.version>
             </properties>
             
@@ -753,7 +753,11 @@
                     <groupId>org.jboss.weld</groupId>
                     <artifactId>weld-api</artifactId>
                 </dependency>
-                
+                <dependency>
+                    <groupId>org.jboss.weld</groupId>
+                    <artifactId>weld-spi</artifactId>
+                </dependency>
+
                 <!--Other than Weld dependencies-->
                 <dependency>
                     <groupId>javax.el</groupId>