diff --git a/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java b/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java
index 8f2f9ce..77ba862 100644
--- a/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java
+++ b/impl/src/main/java/org/apache/myfaces/application/DefaultResourceHandlerSupport.java
@@ -101,7 +101,7 @@
                 }
             }
             else
-            {            
+            {
                 //The ExternalContextResourceLoader has precedence over
                 //ClassLoaderResourceLoader, so it goes first.
                 String renderedJSFJS = WebConfigParamUtils.getStringInitParameter(facesContext.getExternalContext(),
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/ResourceUtils.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/ResourceUtils.java
index ec69460..f59f764 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/util/ResourceUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/util/ResourceUtils.java
@@ -34,16 +34,11 @@
     public final static String MYFACES_LIBRARY_NAME = "org.apache.myfaces";
 
     public final static String JSF_MYFACES_JSFJS_MINIMAL = "minimal";
-    public final static String JSF_MYFACES_JSFJS_MINIMAL_MODERN = "minimal-modern";
     public final static String JSF_MYFACES_JSFJS_NORMAL = "normal";
     
     public final static String JSF_UNCOMPRESSED_JS_RESOURCE_NAME = "jsf-uncompressed.js";
     public final static String JSF_MINIMAL_JS_RESOURCE_NAME = "jsf-minimal.js";
-    public final static String JSF_MINIMAL_MODERN_JS_RESOURCE_NAME = "jsf-minimal-modern.js";
-    
     public final static String JSF_MYFACES_JSFJS_I18N = "jsf-i18n.js";
-    public final static String JSF_MYFACES_JSFJS_EXPERIMENTAL = "jsf-experimental.js";
-    public final static String JSF_MYFACES_JSFJS_LEGACY = "jsf-legacy.js";
 
     private final static String RENDERED_JSF_JS = "org.apache.myfaces.RENDERED_JSF_JS";
 
diff --git a/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java b/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
index ce4db2f..39beed5 100644
--- a/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
+++ b/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
@@ -51,10 +51,8 @@
     /**
      * Define the mode used for jsf.js file:
      * <ul>
-     * <li>normal : contains everything, including jsf-i18n.js, jsf-experimental.js and jsf-legacy.js</li>
-     * <li>minimal-modern : is the core jsf with a baseline of ie9+,
-     * without jsf-i18n.js, jsf-experimental.js and jsf-legacy.js</li>
-     * <li>minimal: which is the same with a baseline of ie6, without jsf-i18n.js, jsf-experimental.js</li>
+     * <li>normal : contains everything, including i18n (jsf-i18n.js)</li>
+     * <li>minimal: contains everything, excluding i18n (jsf-i18n.js)</li>
      * </ul>
      * <p>If org.apache.myfaces.USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS param is set to true and project stage
      * is Development, this param is ignored.</p>
@@ -184,20 +182,10 @@
                 return new AliasResourceMetaImpl(prefix, libraryName, libraryVersion, resourceName, resourceVersion,
                         ResourceUtils.JSF_MINIMAL_JS_RESOURCE_NAME, false);
             }
-            else if (_jsfMode.equals(ResourceUtils.JSF_MYFACES_JSFJS_MINIMAL_MODERN) )
-            {
-                return new AliasResourceMetaImpl(prefix, libraryName, libraryVersion, resourceName, resourceVersion,
-                        ResourceUtils.JSF_MINIMAL_MODERN_JS_RESOURCE_NAME, false);
-            }
-            else
-            {
-                return null;
-            }
+            return null;
         }
         else if (javaxFacesLib && !_developmentStage && !_jsfMode.equals(ResourceUtils.JSF_MYFACES_JSFJS_NORMAL) &&
-                                   (ResourceUtils.JSF_MYFACES_JSFJS_I18N.equals(resourceName) ||
-                                   ResourceUtils.JSF_MYFACES_JSFJS_EXPERIMENTAL.equals(resourceName) ||
-                                   ResourceUtils.JSF_MYFACES_JSFJS_LEGACY.equals(resourceName)) )
+                                   (ResourceUtils.JSF_MYFACES_JSFJS_I18N.equals(resourceName)))
         {
             return new ResourceMetaImpl(prefix, libraryName, libraryVersion, resourceName, resourceVersion);
         }
