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 43fc55c..1e5571c 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
@@ -124,6 +124,9 @@
     /** Felix specific property to configure the included cipher suites. */
     public static final String FELIX_JETTY_INCLUDED_SUITES = "org.apache.felix.https.jetty.ciphersuites.included";
 
+    /** Felix specific property to specify whether a server header should be sent (defaults to true) */
+    public static final String FELIX_JETTY_SEND_SERVER_HEADER = "org.apache.felix.http.jetty.sendServerHeader";
+
     private static String validateContextPath(String ctxPath)
     {
         // undefined, empty, or root context path
@@ -335,6 +338,11 @@
         return getBooleanProperty(FELIX_HTTP_NIO, true);
     }
 
+    public boolean isSendServerHeader()
+    {
+        return getBooleanProperty(FELIX_JETTY_SEND_SERVER_HEADER, true);
+    }
+
     /**
      * Returns <code>true</code> if HTTPS is configured to be used (
      * {@link #FELIX_HTTPS_ENABLE}) and
diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
index 236da20..c0b7459 100644
--- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
+++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
@@ -239,6 +239,7 @@
 
             // HTTP/1.1 requires Date header if possible (it is)
             this.server.setSendDateHeader(true);
+            this.server.setSendServerVersion(this.config.isSendServerHeader());
 
             this.server.addBean(new HashLoginService("OSGi HTTP Service Realm"));
 
@@ -746,6 +747,7 @@
         }
     }
 
+    @Override
     public void lifeCycleStarted(LifeCycle event)
     {
         for (Deployment deployment : this.deployments.values())
@@ -759,6 +761,7 @@
         }
     }
 
+    @Override
     public void lifeCycleStopping(LifeCycle event)
     {
         for (Deployment deployment : this.deployments.values())
