diff --git a/karaf/assembly/src/main/filtered-resources/features.xml b/karaf/assembly/src/main/filtered-resources/features.xml
index 64d20c5..d5f8cbc 100644
--- a/karaf/assembly/src/main/filtered-resources/features.xml
+++ b/karaf/assembly/src/main/filtered-resources/features.xml
@@ -56,10 +56,8 @@
           password=karaf
         </config>
         <bundle>mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
-        <bundle>mvn:org.apache.felix/org.apache.felix.webconsole/${felix.webconsole.version}</bundle>
-        <!-- TODO: uncomment when FELIX-1133 is resolved
         <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.branding/${version}</bundle>
-        -->
+        <bundle>mvn:org.apache.felix/org.apache.felix.webconsole/${felix.webconsole.version}</bundle>
         <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.admin/${version}</bundle>
         <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.features/${version}</bundle>
         <bundle>mvn:org.apache.felix.karaf.webconsole/org.apache.felix.karaf.webconsole.gogo/${version}</bundle>
diff --git a/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.properties b/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.properties
index 84b3fc4..a742b7d 100644
--- a/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.properties
+++ b/karaf/webconsole/branding/src/main/resources/META-INF/webconsole.properties
@@ -19,7 +19,7 @@
 
 
 #
-# This file contains branding properties to overwrite the defualt
+# This file contains branding properties to overwrite the default
 # branding of the Apache Felix Web Console when deployed in an
 # Apache Felix Karaf application.
 
@@ -32,4 +32,4 @@
 webconsole.vendor.image = /res/karaf/imgs/logo.png
 
 webconsole.favicon = /res/karaf/imgs/favicon.ico
-webconsole.stylesheet = /res/karaf/ui/admin.css
+webconsole.stylesheet = /res/karaf/ui/webconsole.css
diff --git a/karaf/webconsole/branding/src/main/resources/res/karaf/ui/admin.css b/karaf/webconsole/branding/src/main/resources/res/karaf/ui/admin.css
deleted file mode 100644
index d836abe..0000000
--- a/karaf/webconsole/branding/src/main/resources/res/karaf/ui/admin.css
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */ /* CSS Document */
-
-a {
-    color: black;
-}
-
-#licenseContent {
-    background-color: white;
-    color: black;
-}
-
-#main {
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-size: 10px;
-    color: white;
-    background-color: black;
-    border-collapse: collapse;
-    padding: 0px;
-    margin: 30px;
-    position: absolute;
-    text-align: left;
-    border-color: black;
-}
-
-#lead {
-    /*color: #00678C;*/
-    color: #ffffff; 
-    margin: 0px 0px 26px 0px;
-    padding: 0px;
-    height: 100px;
-}
-
-#lead h1 { /*
-    background-image: url(../imgs/banner_left.jpg);
-    background-repeat: no-repeat;
-    */
-    color: white;
-    margin: 0px;
-    padding: 5px 0 0 8px;
-    font-size: 200%;
-    font-weight: bold;
-    line-height: 120%;
-    height: 95px;
-    /* account for 5px top marging to get a total of 100px */
-    float: left;
-}
-
-#lead br {
-    line-height: 20px;
-}
-
-#lead p { /*
-    background-image: url(../imgs/banner_right.jpg);
-    background-repeat: no-repeat;
-    border-left: 1px solid;
-        */
-    margin: 0px;
-    padding: 0px;
-    height: 100px;
-    float: right;
-}
-
-#technav {
-    border-bottom: 1px solid white; /*6181A9*/
-    border-top: 1px solid white;
-    color: white;
-    background-color: black;
-    font-size: 10px;
-    font-weight: bold;
-    /*
-    border-top: 1px solid black;
-    */
-    line-height: 21px;
-    padding: 0;
-    margin: 0;
-}
-
-#technav a {
-    /*
-    display: block;
-    float: left;
-    */
-    text-decoration: none;
-    padding: 3px 10px 3px 10px;
-    color: white;
-    text-decoration: none;
-}
-
-#technav a:hover {
-    background-color: white;
-    color: black;
-}
-
-#technav .technavat {
-    /*
-    display: block;
-    float: left;
-    */
-    text-decoration: none;
-    padding: 3px 10px 3px 10px;
-    background-color: white;/*#B6CAE4;*/
-    color: black;
-}
-
-#claim {
-    color: white;
-    background-color: black;
-    padding: 2px 10px 2px 10px;
-}
-
-#claim p {
-    margin: 0;
-    padding: 0;
-}
-
-#claim a {
-    color: black;
-    background-color: white;
-    text-decoration: none;
-}
-
-/*
-.claimcell A:link {
-	color: #C5E2EE;
-	text-decoration: none;
-}
-
-.claimcell A:visited {
-	color: #C5E2EE;
-	text-decoration: none;
-}
-*/
-#claim a:hover {
-    color: black;
-    background-color: white;
-    border-bottom: 1px solid;
-}
-
-#claim a:active {
-    color: black;
-}
-
-/* old styles */
-table {
-    text-align: left;
-}
-
-table.content {
-    clear: both;
-    font-size: 10px;
-    line-height: 13px;
-    border: 0px solid #66dd44;
-    border-top: 1px solid white;
-    padding: 0px;
-    margin: 0px;
-    margin-top: 26px;
-    margin-bottom: 26px;
-    text-align: left;
-}
-
-tr {
-    border-left: 1px solid white;
-    border-right: 1px solid white;
-}
-
-td.content {
-    color: black;
-    border: 0px solid white;
-    border-bottom: 1px solid white;
-    vertical-align: middle;
-    padding: 5px;
-}
-
-td.aligntop {
-    vertical-align: top;
-}
-
-td.content img {
-    width: 10px;
-    height: 10px;
-}
-
-td.disabled {
-    color: #999999;
-}
-
-th.content {
-    color: black;
-    border: 0px solid white;
-    border-bottom: 1px solid white;
-    text-align: left;
-    padding: 5px;
-    padding-left: 10px;
-}
-
-.right {
-    text-align: right;
-}
-.center {
-    text-align: center;
-}
-
-th.container {
-    color: white;
-    background-color: black;
-    border: 1px solid white;
-}
-
-th.important {
-    color: #B81833;
-}
-
-.important {
-    color: #B81833;
-}
-
-#maintable { /* postion: absolute; */
-    font-size: 10px;
-    line-height: 13px;
-    border: 1px solid #000000;
-    padding: 0px;
-    margin: 0px;
-}
-
-.toolcell {
-    font-size: 10px;
-    color: #999999;
-    line-height: 10px;
-    background-color: #000000;
-    height: 18px;
-    padding: 0px;
-    padding-bottom: 1px;
-    text-align: left;
-}
-
-.toolcell A:link {
-    color: #C5E2EE;
-    text-decoration: none;
-}
-
-.toolcell A:visited {
-    color: #C5E2EE;
-    text-decoration: none;
-}
-
-.toolcell A:hover {
-    color: #99FF33;
-    text-decoration: none;
-    border-bottom: 1px solid;
-}
-
-.toolcell A:active {
-    color: #FFFFFF;
-    text-decoration: none;
-}
-
-.leadcell {
-    margin: 0px;
-    padding: 0px;
-    border: 0px solid #000000;
-    width: 718px;
-    height: 100px;
-    /*background-image: url(../imgs/banner_left.jpg);*/
-    vertical-align: top;
-}
-
-.leadcelltext {
-    position: absolute;
-    border: 0px solid #000000;
-    font-size: 26px;
-    line-height: 32px;
-    margin-top: 5px;
-    margin-left: 8px;
-    color: #ffffff;
-    vertical-align: top;
-}
-
-.logocell {
-    border-left: 1px solid #000000;
-    width: 239px;
-    /*background-image: url(../imgs/banner_right.jpg);*/
-}
-
-#technavcell {
-    font-size: 10px;
-    font-weight: bold;
-    border: 1px solid #000000;
-    border-top: 1px solid #000000;
-    height: 21px;
-    background-color: black;
-}
-
-/*
-#technav A:link {
-	float: left;
-	display: block;
-	color: #ffffff;
-	border: 0px solid #000000;
-	border-right: 1px solid #000000;
-	height: 21px;
-	text-decoration: none;
-	padding: 0px 10px 0px 10px;
-	background-color: #6181A9;
-}
-
-#technav A:visited {
-	float: left;
-	display: block;
-	color: #ffffff;
-	border-right: 1px solid #000000;
-	height: 21px;
-	text-decoration: none;
-	padding: 0px 10px 0px 10px;
-	background-color: #6181A9;
-}
-
-#technav A:hover {
-	float: left;
-	display: block;
-	color: #ffffff;
-	border-right: 1px solid #000000;
-	height: 21px;
-	text-decoration: none;
-	padding: 0px 10px 0px 10px;
-	background-color: #000000;
-}
-
-#technav A:active {
-	float: left;
-	display: block;
-	color: #ffffff;
-	border-right: 1px solid #000000;
-	height: 21px;
-	text-decoration: none;
-	padding: 0px 10px 0px 10px;
-	background-color: #6181A9;
-}
-*/
-.techcontentcell {
-    border: 0px solid #000000;
-    border-top: 1px solid #000000;
-}
-
-.relatedcell {
-    border-left: 1px solid #000000;
-    border-top: 1px solid #000000;
-    background-color: black;
-}
-
-/* CENTRAL CONTENT AREA STYLING */
-.content {
-    position: relative;
-    margin: 25px;
-    font-size: 11px;
-    line-height: 16px;
-    color: black;
-    background-color: white;
-}
-
-.content A:link {
-    color: #336600;
-    text-decoration: underline;
-}
-
-.content A:visited {
-    color: #666666;
-    text-decoration: underline;
-}
-
-.content A:hover {
-    color: blue;
-    background-color: #336600;
-    text-decoration: none;
-}
-
-.content A:active {
-    color: yellow;
-    background-color: white;
-    text-decoration: none;
-}
-
-body {
-	background-color: black;
-    color: white;
-}
-
-/* TEXT STYLING */ /*
-h1, h2, h3, h4, h5, h6, p
-
-	{
-	margin: 0px;
-	margin-bottom: 8px;
-	font-size: 11px;
-	line-height: 16px;
-	font-weight:bold;
-	}
-
-*/ /*
-h1
-	{
-	color: #000000;
-	margin-top: 32px;
-	clear: left;
-	}
-
-
-h2
-	{
-	color: #336699;
-	}
-
-
-h3
-	{
-	color: #336699;
-	}
-*/ /*
-p
-	{
-	font-size: 11px;
-	line-height: 16px;
-	font-weight: normal;
-	color: #000000;
-	}
-*/ /* FORMS */
-form {
-    font-size: 9px;
-    border-top: 1px solid white;
-    border-bottom: 1px solid white;
-    border-left: 1px solid white;
-    border-right: 1px solid white;
-    margin: 0;
-    padding: 0;
-    clear: left;
-}
-
-select,textarea {
-    font-family: Verdana, Arial, Helvetica, san-serif;
-    font-size: 9px;
-    font-weight: normal;
-    display: block;
-    float: left;
-    padding-top: 3px;
-    margin-bottom: 10px;
-}
-
-.input {
-    font-family: Verdana, Arial, Helvetica, san-serif;
-    font-size: 9px;
-    font-weight: normal;
-    color: black;
-    background-color: white;
-    border: 1px solid #999999;
-    /*border-bottom: 1px solid #cccccc;
-    border-right: 1px solid #cccccc;*/
-}
-
-.fileinput {
-    font-family: Verdana, Arial, Helvetica, san-serif;
-    font-size: 9px;
-    font-weight: normal;
-    color: black;
-}
-
-.submit {
-    cursor: default;
-    width: 60px;
-    font-family: Verdana, Arial, Helvetica, san-serif;
-    font-size: 10px;
-    font-weight: bold;
-    background-color: black;
-    color: white;
-    height: 20px;
-    padding: 0px;
-    padding-bottom: 1px;
-    margin: 0px;
-    border: 1px solid #cfcfcf;
-    border-right: 2px solid #4f4f4f;
-    border-bottom: 2px solid #4f4f4f;
-}
-
-input.important {
-    background-color: black;
-    color: white;
-}
-
-select {
-    color: #184054;
-    background-color: #f0f0f0;
-    border: 0px solid #999999;
-}
-
-textarea {
-    color: #184054;
-    background-color: #f0f0f0;
-    width: 234px;
-    height: 100px;
-    border: 1px solid #999999;
-    border-bottom: 1px solid #cccccc;
-    border-right: 1px solid #cccccc;
-}
-
-.clearleft {
-    clear: left;
-}
-
-.clearboth {
-    clear: both;
-}
-
-.checkradio {
-    background-color: black;
-    width: 20px;
-    padding: 0px;
-    padding-bottom: 10px;
-    margin: 0px;
-    margin-top: 2px;
-    border: 0px solid #999999;
-}
-
-.checkradiotext {
-    font-size: 9px;
-    font-weight: normal;
-    line-height: 11px;
-    width: 100px;
-    color: white;
-    padding: 0px;
-    padding-bottom: 10px;
-    margin: 0px;
-    margin-top: 4px;
-    border: 0px solid #999999;
-}
-
-div.buttons {
-    background-color: black;
-    height: 30px;
-    text-align: right;
-    vertical-align: middle;
-    padding-right: 10px;
-    padding-top: 8px;
-    color: white;
-    font-size: 10px;
-}
-div.buttons select {
-    font-family: Verdana, Arial, Helvetica, san-serif;
-    font-size: 9px;
-    font-weight: normal;
-    display: inline;
-    float:none;
-}
-div.button {
-    display: inline-block;
-    margin-left: 10px;
-}
-div.fullwidth {
-    width: 100%;
-}
-div.statusline {
-    margin-top: 10px;
-    background-color: #3f3f3f;
-    padding-left: 10px;
-    border: 1px solid #cfcfcf;
-    font-family: Verdana, Arial, Helvetica, san-serif;
-    font-size: 11px;
-    font-weight: normal;
-    color: #cfcfcf;
-    line-height: 19px;
-    margin-bottom: 10px;
-}
-div.table {
-	margin-left: 1px;
-}
-div.tablelayout {
-}
-
-/* tables */
-table.tablelayout {
-	border-left: 1px solid white;
-    border-right: 1px solid white;
-    border-collapse: collapse;
-	font-family:arial;
-    background-color: red;
-    font-size: 8pt;
-    width: 100%;
-    text-align: left;
-}
-table.tablelayout tbody tr {
-    border-left: 1px solid #6181A9;
-    border-right: 1px solid #6181A9;
-}
-
-table.tablelayout thead tr th, table.tablelayout tfoot tr th {
-    background-color: #6f6f6f;
-    border: 1px solid #cfcfcf;
-    font-size: 8pt;
-    padding: 4px;
-    color: #cfcfcf;
-}
-table.tablelayout thead tr .header {
-    /*background-image: url(../imgs/bg.gif);*/
-    background-repeat: no-repeat;
-    background-position: center right;
-    cursor: pointer;
-}
-table.tablelayout tbody td {
-    color: black;
-    border: 1px solid #cfcfcf;
-    padding: 4px;
-    background-color: white;
-    vertical-align: top;
-}
-table.tablelayout tbody tr.odd td {
-    background-color: white; /*#F0F0F6*/
-}
-table.tablelayout thead tr .headerSortUp {
-    background-image: url(../imgs/asc.gif);
-}
-table.tablelayout thead tr .headerSortDown {
-    background-image: url(../imgs/desc.gif);
-}
-table.tablelayout thead tr .headerSortDown, table.tablelayout thead tr .headerSortUp {
-background-color: #3f3f3f;/*#8dbdd8*/
-color: #cfcfcf;
-border: 1px solid #cfcfcf;
-}
-.col_Id {
-    width: 40px;
-}
-.col_Status {
-	width: 50px;
-}
-.col_Actions {
-    width: 95px;
-}
-#plugin_content {
-    margin-top: 26px;
-    margin-bottom: 26px;
-}
-.contentheader {
-    border: 0px solid #66dd44;
-    border-bottom: 1px solid black;
-    text-align: left;
-    padding: 5px;
-    padding-left: 10px;
-    color: black;
-    background-color: white;
-}
-.contentline {
-	padding-top: 15px;
-	padding-left:10px;
-    clear: both;
-    width: 100%;
-}
-.contentleft {
-    padding-left: 9px;
-    float: left;
-    width:110px;
-}
-.contentright {
-    display: inline;
-    width: 225px;
-}
diff --git a/karaf/webconsole/branding/src/main/resources/res/karaf/ui/webconsole.css b/karaf/webconsole/branding/src/main/resources/res/karaf/ui/webconsole.css
new file mode 100644
index 0000000..b815bd0
--- /dev/null
+++ b/karaf/webconsole/branding/src/main/resources/res/karaf/ui/webconsole.css
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+/*
+ * The webconsole.css is the main CSS which sets up the following parts
+ *
+ *   div main -> outermost div just inside body
+ *   div lead -> the page lead with title and logo
+ *   div technav -> the top navigation
+ *   div content -> the div surrounding the content being rendered by
+ *      the plugin in the renderContent (or service) method
+ *
+ * See also http://felix.apache.org/site/branding-the-web-console.html
+ */
+
+#main {
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 10px;
+    color: black;
+    background-color: white;
+    border-collapse: collapse;
+    padding: 0px;
+    margin: 30px;
+    position: absolute;
+    text-align: left;
+    border-color: black;
+}
+
+#lead {
+    color: #00678C;
+    /* color: #ffffff; */
+    margin: 0px 0px 26px 0px;
+    padding: 0px;
+    height: 100px;
+}
+
+/* This contains the page title */
+#lead h1 {
+    margin: 0px;
+    padding: 5px 0 0 8px;
+    font-size: 300%;
+    font-weight: bold;
+    line-height: 120%;
+    /* account for 5px top padding to get a total of 100px */
+    height: 95px;
+    float: left;
+}
+
+#lead br {
+    line-height: 20px;
+}
+
+/* This contains the logo */
+#lead p {
+    margin: 0px;
+    padding: 0px;
+    height: 100px;
+    position:absolute;
+    right: 0px;
+}
+
+/* This contains the top navigation */
+#technav {
+    border-bottom: 1px solid #6181A9;
+    border-top: 1px solid #6181A9;
+    color: black;
+    font-size: 10px;
+    font-weight: bold;
+    line-height: 21px;
+    padding: 0;
+    margin: 0;
+}
+
+#technav a {
+    text-decoration: none;
+    padding: 3px 10px 3px 10px;
+    color: #6181A9;
+    text-decoration: none;
+}
+
+#technav a:hover {
+    background-color: black;
+}
+
+/* Special rendering of the "button" for the current page */
+#technav .technavat {
+    text-decoration: none;
+    padding: 3px 10px 3px 10px;
+    background-color: #B6CAE4;
+    color: black;
+}
+
+#technav .technavitem {
+    display: inline;
+    white-space: nowrap;
+}
+
+
+/* CENTRAL CONTENT AREA STYLING */
+#content {
+    position: relative;
+}
+
+#content A:link {
+    color: #336600;
+    text-decoration: underline;
+}
+
+#content A:visited {
+    color: #666666;
+    text-decoration: underline;
+}
+
+#content A:hover {
+    color: #ffffff;
+    background-color: #336600;
+    text-decoration: none;
+}
+
+#content A:active {
+    color: #ffffff;
+    background-color: #000000;
+    text-decoration: none;
+}
+
