diff --git a/http/pom.xml b/http/pom.xml
index 67cdee2..1821baa 100644
--- a/http/pom.xml
+++ b/http/pom.xml
@@ -40,6 +40,7 @@
 
     <modules>
         <module>api</module>
+        <module>servlet-api</module>
         <module>base</module>
         <module>bridge</module>
         <module>jetty</module>
diff --git a/http/servlet-api/pom.xml b/http/servlet-api/pom.xml
new file mode 100644
index 0000000..481ffc9
--- /dev/null
+++ b/http/servlet-api/pom.xml
@@ -0,0 +1,121 @@
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+>
+
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.http.parent</artifactId>
+        <version>3-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <name>Apache Felix Servlet API</name>
+    <description>Provides the Servlet API for use by applications</description>
+    <artifactId>org.apache.felix.http.servlet-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/servlet-api</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/http/servlet-api</developerConnection>
+        <url>http://svn.apache.org/viewvc/felix/trunk/http/servlet-api/</url>
+    </scm>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack-dependencies</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeArtifactIds>tomcat-servlet-api</includeArtifactIds>
+                            <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+                            <includes>
+                                javax/servlet/*.class,
+                                javax/servlet/annotation/*.class,
+                                javax/servlet/descriptor/*.class,
+                                javax/servlet/http/*.class
+                            </includes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <addDefaultImplementationEntries>false</addDefaultImplementationEntries>
+                            <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
+                        </manifest>
+                        <manifestEntries>
+                            <Bundle-ManifestVersion> 2</Bundle-ManifestVersion>
+                            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                            <Bundle-Version>${project.version}</Bundle-Version>
+                            <Bundle-Description>${project.description}</Bundle-Description>
+                            <Bundle-Name>${project.name}</Bundle-Name>
+                            <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
+                            <Bundle-License>${project.licenses[0].url}</Bundle-License>
+                            <Bundle-DocURL>http://felix.apache.org</Bundle-DocURL>
+
+                            <Export-Package>
+                                javax.servlet;uses:="javax.servlet.annotation,javax.servlet.descriptor";version="2.6",javax.servlet.descriptor;version="2.6",javax.servlet.annotation;uses:="javax.servlet";version="2.6",javax.servlet.http;uses:="javax.servlet";version="2.6",javax.servlet;uses:="javax.servlet.annotation,javax.servlet.descriptor";version="3.0",javax.servlet.descriptor;version="3.0",javax.servlet.annotation;uses:="javax.servlet";version="3.0",javax.servlet.http;uses:="javax.servlet";version="3.0"
+                            </Export-Package>
+                        </manifestEntries>
+
+                        <manifestSections>
+                            <manifestSection>
+                                <name>javax/servlet/</name>
+                                <manifestEntries>
+                                    <Specification-Title>
+                                        Java API for Servlets
+                                    </Specification-Title>
+                                    <Specification-Version>
+                                        3.0
+                                    </Specification-Version>
+                                    <Specification-Vendor>
+                                        Sun Microsystems, Inc.
+                                    </Specification-Vendor>
+                                    <Implementation-Title>
+                                        javax.servlet
+                                    </Implementation-Title>
+                                    <Implementation-Version>
+                                        3.0.FR
+                                    </Implementation-Version>
+                                    <Implementation-Vendor>
+                                        Apache Software Foundation
+                                    </Implementation-Vendor>
+                                </manifestEntries>
+                            </manifestSection>
+                        </manifestSections>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-servlet-api</artifactId>
+            <version>7.0.8</version>
+        </dependency>
+    </dependencies>
+
+</project>
