diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java b/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
index 803b09b..9c6ad26 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
@@ -658,7 +658,7 @@
         //    (for example plugin provided CSS links)
         if ( HEADER == null )
         {
-            HEADER = readTemplateFile( "/templates/main_header.html" );
+            HEADER = readTemplateFile( AbstractWebConsolePlugin.class, "/templates/main_header.html" );
         }
         return HEADER;
     }
@@ -668,7 +668,7 @@
     {
         if ( FOOTER == null )
         {
-            FOOTER = readTemplateFile( "/templates/main_footer.html" );
+            FOOTER = readTemplateFile( AbstractWebConsolePlugin.class, "/templates/main_footer.html" );
         }
         return FOOTER;
     }
@@ -692,9 +692,13 @@
      *      the template file into a string. The exception provides the
      *      exception thrown as its cause.
      */
-    protected final String readTemplateFile( final String templateFile )
+    protected final String readTemplateFile( final String templateFile ) {
+        return readTemplateFile( getClass(), templateFile );
+    }
+
+    private final String readTemplateFile( final Class clazz, final String templateFile)
     {
-        InputStream templateStream = getClass().getResourceAsStream( templateFile );
+        InputStream templateStream = clazz.getResourceAsStream( templateFile );
         if ( templateStream != null )
         {
             try
@@ -703,23 +707,17 @@
             }
             catch ( IOException e )
             {
-                throw new RuntimeException( "readTemplateFile: Error loading " + templateFile, e );
+                // don't use new Exception(message, cause) because cause is 1.4+
+                throw new RuntimeException( "readTemplateFile: Error loading " + templateFile + ": " + e );
             }
             finally
             {
-                try
-                {
-                    templateStream.close();
-                }
-                catch ( IOException ignore )
-                {
-                    // ignored
-                }
+                IOUtils.closeQuietly( templateStream );
             }
         }
 
         // template file does not exist, return an empty string
-        log( "readTemplateFile: File '" + templateFile + "' not found through class " + getClass() );
+        log( "readTemplateFile: File '" + templateFile + "' not found through class " + clazz );
         return "";
     }
 
@@ -739,7 +737,7 @@
         {
             buf.append( "<link href='" );
             buf.append( toUrl( cssRefs[i], appRoot ) );
-            buf.append( "' rel='stylesheet' type='text/css'>" );
+            buf.append( "' rel='stylesheet' type='text/css' />" );
         }
 
         return buf.toString();
diff --git a/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties b/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
index 6340ef0..b89c29f 100644
--- a/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
+++ b/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
@@ -33,6 +33,8 @@
 type=Type
 type_s=Type(s)
 bundle=Bundle
+version=Version
+help=Help
 
 
 # VMStat plugin
@@ -60,4 +62,33 @@
 services.details.hide=Hide Details
 services.details.tip=Details
 services.statusline=Services information: {0} service(s) in total.
-services.caption=Services
\ No newline at end of file
+services.caption=Services
+
+# Log plugin
+log.status.ok=Log Service is running.
+log.status.missing=Log Service is not installed/running.
+log.severity.label=Severity at least:
+log.received=Received
+log.level=Level
+log.message=Message
+log.service=Service
+log.exception=Exception
+log.level.error=ERROR
+log.level.warn=WARN
+log.level.info=INFO
+log.level.debug=DEBUG
+
+# Deployment Admin plugin
+deployment.status.no_data=No deployment packages installed!
+deployment.status.no_service=Deployment Admin is not installed/running!
+deployment.status.ok=Deployment Admin service is running
+deployment.details=Details
+deployment.actions=Actions
+deployment.install_update=Install or Update
+deployment.package.name=Package Name
+deployment.bundles=Bundles
+deployment.uninstall=Uninstall
+
+# Shell plugin
+shell.clear=Clear
+shell.status=Use the command prompt to execute shell commands.
\ No newline at end of file
