diff --git a/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultFacesConfigurationProviderFactory.java b/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultFacesConfigurationProviderFactory.java
index d259ede..ac9c91f 100644
--- a/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultFacesConfigurationProviderFactory.java
+++ b/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultFacesConfigurationProviderFactory.java
@@ -73,13 +73,9 @@
                 {
                     returnValue = resolveFacesConfigurationProviderFromService(extContext);
                 }
-                externalContext.getApplicationMap().put(FACES_CONFIGURATION_PROVIDER_INSTANCE_KEY, returnValue);
             }
-            catch (ClassNotFoundException | NoClassDefFoundError e)
-            {
-                // ignore
-            }
-            catch (InstantiationException | IllegalAccessException | InvocationTargetException e)
+            catch (ClassNotFoundException | NoClassDefFoundError | InstantiationException | IllegalAccessException
+                    | InvocationTargetException e)
             {
                 getLogger().log(Level.SEVERE, "", e);
             }
@@ -88,6 +84,13 @@
                 throw new FacesException(e);
             }
         }
+        
+        if (returnValue == null)
+        {
+            returnValue = new DefaultFacesConfigurationProvider();
+        }
+
+        externalContext.getApplicationMap().put(FACES_CONFIGURATION_PROVIDER_INSTANCE_KEY, returnValue);
 
         return returnValue;
     }
diff --git a/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultWebConfigProviderFactory.java b/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultWebConfigProviderFactory.java
index fe4e171..a951530 100644
--- a/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultWebConfigProviderFactory.java
+++ b/impl/src/main/java/org/apache/myfaces/spi/impl/DefaultWebConfigProviderFactory.java
@@ -72,11 +72,8 @@
                 returnValue = resolveWebXmlProviderFromService(extContext);
             }
         }
-        catch (ClassNotFoundException | NoClassDefFoundError e)
-        {
-            // ignore
-        }
-        catch (InstantiationException | IllegalAccessException | InvocationTargetException e)
+        catch (ClassNotFoundException | NoClassDefFoundError | InstantiationException | IllegalAccessException
+                | InvocationTargetException e)
         {
             getLogger().log(Level.SEVERE, "", e);
         }
@@ -85,6 +82,11 @@
             throw new FacesException(e);
         }
 
+        if (returnValue == null)
+        {
+            returnValue = new DefaultWebConfigProvider();
+        }
+ 
         return returnValue;
     }
 
