diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java
index afaaad4..a795fe5 100644
--- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java
+++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java
@@ -197,12 +197,6 @@
                 204800,
                 bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_MAX_FORM_SIZE)));
 
-        adList.add(new AttributeDefinitionImpl(JettyConfig.FELIX_HTTP_DEBUG,
-                "Debug Logging",
-                "Whether to write DEBUG level messages or not. Defaults to false.",
-                false,
-                bundle.getBundleContext().getProperty(JettyConfig.FELIX_HTTP_DEBUG)));
-
         adList.add(new AttributeDefinitionImpl(JettyConfig.FELIX_HTTP_PATH_EXCLUSIONS,
                 "Path Exclusions",
                 "Contains a list of context path prefixes. If a Web Application Bundle is started with a context path matching any " +
diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java
index 95a4ddf..12b251f 100644
--- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java
+++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java
@@ -44,10 +44,6 @@
     /** Felix specific property to set http reaching timeout limit */
     public static final String HTTP_TIMEOUT = "org.apache.felix.http.timeout";
 
-    /** Felix specific property to enable debug messages */
-    public static final String FELIX_HTTP_DEBUG = "org.apache.felix.http.debug";
-    public static final String HTTP_DEBUG = "org.apache.felix.http.jetty.debug";
-
     /** Felix specific property to override the keystore file location. */
     public static final String FELIX_KEYSTORE = "org.apache.felix.https.keystore";
     private static final String OSCAR_KEYSTORE = "org.ungoverned.osgi.bundle.https.keystore";
@@ -359,11 +355,6 @@
         return getProperty(FELIX_TRUSTSTORE_TYPE, KeyStore.getDefaultType());
     }
 
-    public boolean isDebug()
-    {
-        return getBooleanProperty(FELIX_HTTP_DEBUG, getBooleanProperty(HTTP_DEBUG, false));
-    }
-
     public boolean isRegisterMBeans()
     {
         return getBooleanProperty(FELIX_HTTP_MBEANS, false);
diff --git a/httplite/core/src/main/java/org/apache/felix/httplite/osgi/Activator.java b/httplite/core/src/main/java/org/apache/felix/httplite/osgi/Activator.java
index d876f70..793470c 100644
--- a/httplite/core/src/main/java/org/apache/felix/httplite/osgi/Activator.java
+++ b/httplite/core/src/main/java/org/apache/felix/httplite/osgi/Activator.java
@@ -118,8 +118,6 @@
             context.getProperty(Server.CONFIG_PROPERTY_HTTP_ENABLE));
         config.put(Server.CONFIG_PROPERTY_HTTPS_ENABLE,
             context.getProperty(Server.CONFIG_PROPERTY_HTTPS_ENABLE));
-        config.put(Server.CONFIG_PROPERTY_HTTP_DEBUG,
-            context.getProperty(Server.CONFIG_PROPERTY_HTTP_DEBUG));
         config.put(Server.CONFIG_PROPERTY_THREADPOOL_LIMIT_PROP,
             context.getProperty(Server.CONFIG_PROPERTY_THREADPOOL_LIMIT_PROP));
         config.put(Server.CONFIG_PROPERTY_THREADPOOL_TIMEOUT_PROP,
diff --git a/httplite/core/src/main/java/org/apache/felix/httplite/server/Server.java b/httplite/core/src/main/java/org/apache/felix/httplite/server/Server.java
index c1a293b..bf4b226 100644
--- a/httplite/core/src/main/java/org/apache/felix/httplite/server/Server.java
+++ b/httplite/core/src/main/java/org/apache/felix/httplite/server/Server.java
@@ -53,10 +53,6 @@
      * Thread pool limit property
      */
     public static final String CONFIG_PROPERTY_THREADPOOL_LIMIT_PROP = "org.apache.felix.http.threadpool.limit";
-     /**
-     * Flag to enable debugging for this service implementation. The default is false.
-     */
-    public static final String CONFIG_PROPERTY_HTTP_DEBUG = "org.apache.felix.http.debug";
     /**
      * Flag to enable the user of HTTPS. The default is false.
      */
