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 177412a..180e966 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
@@ -73,6 +73,9 @@
     /** Felix specific property to control whether Jetty uses NIO or not for HTTPS. Valid values are "true", "false". Default is the value of org.apache.felix.http.nio */
     public static final String  FELIX_HTTPS_NIO = "org.apache.felix.https.nio";
 
+    /** Felix specific property to configure the session timeout in minutes (same session-timout in web.xml). Default is servlet container specific */
+    public static final String FELIX_SESSION_TIMEOUT = "org.apache.felix.http.session.timeout";
+
     /** Felix specific property to enable Jetty MBeans. Valid values are "true", "false". Default is false */
     public static final String  FELIX_HTTP_MBEANS = "org.apache.felix.http.mbeans";
 
@@ -92,6 +95,7 @@
     private boolean useHttpNio;
     private boolean useHttpsNio;
     private boolean registerMBeans;
+    private int sessionTimeout;
 
     /**
      * Properties from the configuration not matching any of the
@@ -194,6 +198,15 @@
         return this.clientcert;
     }
 
+    /**
+     * Returns the configured session timeout in minutes or zero if not
+     * configured.
+     */
+    public int getSessionTimeout()
+    {
+        return this.sessionTimeout;
+    }
+
     public void reset()
     {
         update(null);
@@ -220,6 +233,7 @@
         this.useHttpNio = getBooleanProperty(props, FELIX_HTTP_NIO, true);
         this.useHttpsNio = getBooleanProperty(props, FELIX_HTTPS_NIO, this.useHttpNio);
         this.registerMBeans = getBooleanProperty(props, FELIX_HTTP_MBEANS, false);
+        this.sessionTimeout = getIntProperty(props, FELIX_SESSION_TIMEOUT, 0);
 
         // copy rest of the properties
         Enumeration keys = props.keys();
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 b709395..5fdb887 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
@@ -317,6 +317,9 @@
     private void configureSessionManager(final Context context)
     {
         final SessionManager manager = context.getSessionHandler().getSessionManager();
+
+        manager.setMaxInactiveInterval(this.config.getSessionTimeout() * 60);
+
         manager.setSessionCookie(this.config.getProperty(SessionManager.__SessionCookieProperty, SessionManager.__DefaultSessionCookie));
         manager.setSessionURL(this.config.getProperty(SessionManager.__SessionURLProperty, SessionManager.__DefaultSessionURL));
         manager.setSessionDomain(this.config.getProperty(SessionManager.__SessionDomainProperty, SessionManager.__DefaultSessionDomain));
