diff --git a/webconsole/pom.xml b/webconsole/pom.xml
index d1ba5b3..52131b7 100644
--- a/webconsole/pom.xml
+++ b/webconsole/pom.xml
@@ -40,6 +40,11 @@
     <properties>
         <org.json.version>20070829</org.json.version>
         <org.json.version.osgi>0.0.0.${org.json.version}</org.json.version.osgi>
+        <webconsole.exports>
+            org.apache.felix.webconsole;version=3.1.3;provide:=true,
+            org.apache.felix.webconsole.bundleinfo;version=1.0.0;provide:=true,
+            org.apache.felix.webconsole.i18n;version=1.0.0;provide:=true
+        </webconsole.exports>
     </properties>
 
     <scm>
@@ -127,9 +132,7 @@
                             org.apache.felix.webconsole.internal.OsgiManagerActivator
                         </Bundle-Activator>
                         <Export-Package>
-                            org.apache.felix.webconsole;version=3.1.3;provide:=true,
-                            org.apache.felix.webconsole.bundleinfo;version=1.0.0;provide:=true,
-                            org.apache.felix.webconsole.i18n;version=1.0.0;provide:=true
+                            ${webconsole.exports}
                         </Export-Package>
                         <Import-Package>
                             org.json.*;version=0,
@@ -235,7 +238,8 @@
                                             org.apache.commons.io.filefilter,
                                             org.apache.commons.io.output,
                                             org.json;version=${org.json.version.osgi},
-                                            org.apache.felix.status;version=1.0.0
+                                            org.apache.felix.status;version=1.0.0,
+                                            ${webconsole.exports}
                                        </Export-Package>
                                        <Embed-Dependency>
                                            <!-- Import/Export-Package parsing -->
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
index 7d05d7b..fbdd7ad 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
@@ -55,7 +55,7 @@
 import org.apache.felix.webconsole.internal.core.BundlesServlet;
 import org.apache.felix.webconsole.internal.filter.FilteringResponseWrapper;
 import org.apache.felix.webconsole.internal.i18n.ResourceBundleManager;
-import org.apache.felix.webconsole.internal.misc.ConfigurationRender;
+import org.apache.felix.webconsole.internal.servlet.PluginHolder.InternalPlugin;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
@@ -294,10 +294,10 @@
         resourceBundleManager = new ResourceBundleManager(getBundleContext());
 
         // start the configuration render, providing the resource bundle manager
-        ConfigurationRender cr = new ConfigurationRender(resourceBundleManager);
-        cr.activate(bundleContext);
-        osgiManagerPlugins.add(cr);
-        holder.addOsgiManagerPlugin(cr);
+        //ConfigurationRender cr = new ConfigurationRender(resourceBundleManager);
+        //cr.activate(bundleContext);
+        //osgiManagerPlugins.add(cr);
+        //holder.addOsgiManagerPlugin(cr);
 
         // start tracking external plugins after setting up our own plugins
         holder.open();
