diff --git a/assemblies/features/spring-legacy/src/main/feature/feature.xml b/assemblies/features/spring-legacy/src/main/feature/feature.xml
index 185bf04..8e45f27 100644
--- a/assemblies/features/spring-legacy/src/main/feature/feature.xml
+++ b/assemblies/features/spring-legacy/src/main/feature/feature.xml
@@ -201,79 +201,6 @@
         <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/${spring32.version}</bundle>
     </feature>
 
-    <!-- Spring 4.1.x support -->
-
-    <feature name="spring" description="Spring 4.1.x support" version="${spring41.version}">
-        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/${aopalliance.bundle.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/${spring41.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/${spring41.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/${spring41.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/${spring41.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/${spring41.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-aspects" description="Spring 4.1.x AOP support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-instrument" description="Spring 4.1.x Instrument support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-jdbc" description="Spring 4.1.x JDBC support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring-tx</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-jms" description="Spring 4.1.x JMS support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring-tx</feature>
-        <bundle dependency="true" start-level="10">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
-        <bundle dependency="true" start-level="10">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms-spec.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-test" description="Spring 4.1.x Test support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-orm" description="Spring 4.1.x ORM support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring-jdbc</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-oxm" description="Spring 4.1.x OXM support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-tx" description="Spring 4.1.x Transaction (TX) support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-web" description="Spring 4.1.x Web support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring</feature>
-        <feature>http</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/${spring41.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-web-portlet" description="Spring 4.1.x Web Portlet support" version="${spring41.version}">
-        <feature prerequisite="true">wrap</feature>
-        <feature version="[${spring41.version},4.2)">spring-web</feature>
-        <bundle dependency="true" start-level="30">wrap:mvn:javax.portlet/portlet-api/${portlet-api.version}$Export-Package=javax.portlet.*;version=2.0</bundle>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/${spring41.version}</bundle>
-    </feature>
-
-    <feature name="spring-websocket" description="Spring 4.1.x WebSocket support" version="${spring41.version}">
-        <feature version="[${spring41.version},4.2)">spring-web</feature>
-        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/${spring41.version}</bundle>
-    </feature>
-
     <!-- Spring 4.2.x support -->
 
     <feature name="spring" description="Spring 4.2.x support" version="${spring42.version}">
diff --git a/itests/test/pom.xml b/itests/test/pom.xml
index ede2152..8615507 100644
--- a/itests/test/pom.xml
+++ b/itests/test/pom.xml
@@ -307,7 +307,6 @@
                         <org.ops4j.pax.logging.DefaultServiceLog.level>INFO</org.ops4j.pax.logging.DefaultServiceLog.level>
                         <spring31.version>${spring31.version}</spring31.version>
                         <spring32.version>${spring32.version}</spring32.version>
-                        <spring41.version>${spring41.version}</spring41.version>
                         <spring42.version>${spring42.version}</spring42.version>
                         <spring43.version>${spring43.version}</spring43.version>
                         <spring50.version>${spring50.version}</spring50.version>
@@ -370,7 +369,6 @@
                                 <karaf.version>${project.version}</karaf.version>
                                 <spring31.version>${spring31.version}</spring31.version>
                                 <spring32.version>${spring32.version}</spring32.version>
-                                <spring41.version>${spring41.version}</spring41.version>
                                 <spring42.version>${spring42.version}</spring42.version>
                                 <spring43.version>${spring43.version}</spring43.version>
                                 <spring50.version>${spring50.version}</spring50.version>
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java b/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java
index e8949b2..2328109 100644
--- a/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java
+++ b/itests/test/src/test/java/org/apache/karaf/itests/BaseTest.java
@@ -27,7 +27,6 @@
                 KarafDistributionOption.replaceConfigurationFile("etc/org.ops4j.pax.logging.cfg", getConfigFile("/etc/org.ops4j.pax.logging.cfg")),
                 KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring31.version", System.getProperty("spring31.version")),
                 KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring32.version", System.getProperty("spring32.version")),
-                KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring41.version", System.getProperty("spring41.version")),
                 KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring42.version", System.getProperty("spring42.version")),
                 KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring43.version", System.getProperty("spring43.version")),
                 KarafDistributionOption.editConfigurationFilePut("etc/system.properties", "spring50.version", System.getProperty("spring50.version")),
diff --git a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
deleted file mode 100644
index ce641cb..0000000
--- a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.itests.features;
-
-import org.apache.karaf.itests.BaseTest;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.MavenUtils;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
-import org.ops4j.pax.exam.spi.reactors.PerClass;
-
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
-
-@RunWith(PaxExam.class)
-@ExamReactorStrategy(PerClass.class)
-public class Spring41FeaturesTest extends BaseTest {
-
-    @Configuration
-    public Option[] config() {
-        String version = MavenUtils.getArtifactVersion("org.apache.karaf", "apache-karaf");
-        List<Option> result = new LinkedList<>(Arrays.asList(super.config()));
-        result.add(editConfigurationFilePut("etc/org.apache.karaf.features.cfg", "featuresRepositories",
-                        "mvn:org.apache.karaf.features/framework/" + version + "/xml/features, " +
-                        "mvn:org.apache.karaf.features/spring/" + version + "/xml/features, " +
-                        "mvn:org.apache.karaf.features/spring-legacy/" + version + "/xml/features, " +
-                        "mvn:org.apache.karaf.features/enterprise/" + version + "/xml/features, " +
-                        "mvn:org.apache.karaf.features/enterprise-legacy/" + version + "/xml/features, " +
-                        "mvn:org.apache.karaf.features/standard/" + version + "/xml/features"));
-        return result.toArray(new Option[result.size()]);
-    }
-
-    @Test
-    public void installSpringFeature() throws Exception {
-        installAssertAndUninstallFeature("spring", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringAspectsFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringInstrumentFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringJdbcFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringJmsFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringTestFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-test", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringOrmFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringOxmFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringTxFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringWebFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringWebPortletFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring41.version"));
-    }
-
-    @Test
-    public void installSpringWebSocketFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-websocket", System.getProperty("spring41.version"));
-    }
-
-}
diff --git a/pom.xml b/pom.xml
index 59bb169..bda9055 100644
--- a/pom.xml
+++ b/pom.xml
@@ -297,7 +297,6 @@
         <spring.osgi.version>1.2.1</spring.osgi.version>
         <spring31.version>3.1.4.RELEASE</spring31.version>
         <spring32.version>3.2.18.RELEASE_1</spring32.version>
-        <spring41.version>4.1.9.RELEASE_1</spring41.version>
         <spring42.version>4.2.9.RELEASE_1</spring42.version>
         <spring43.version>4.3.25.RELEASE_1</spring43.version>
         <spring50.version>5.0.15.RELEASE_1</spring50.version>
