diff --git a/http/api/pom.xml b/http/api/pom.xml
index d8596be..1a7d5e6 100644
--- a/http/api/pom.xml
+++ b/http/api/pom.xml
@@ -53,12 +53,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.cometd.java</groupId>
-            <artifactId>cometd-api</artifactId>
-            <version>1.0.beta7</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.compendium</artifactId>
             <scope>provided</scope>
diff --git a/http/cometd/pom.xml b/http/cometd/pom.xml
index 5881720..2a3f714 100644
--- a/http/cometd/pom.xml
+++ b/http/cometd/pom.xml
@@ -41,22 +41,18 @@
                             org.apache.felix.http.cometd.internal.CometdActivator
                         </Bundle-Activator>
                         <Export-Package>
-                            org.apache.felix.http.api;version=${pom.version},
-                            org.cometd;version=1.0.beta7,
-                            org.mortbay.*;-split-package:=merge-first,
-                            org.osgi.service.http,
-                            javax.servlet.*;version=2.5;-split-package:=merge-first
+                            org.apache.felix.http.cometd;version=${project.version},
+                            org.cometd;version=1.1.4
                         </Export-Package>
                         <Private-Package>
                             org.apache.felix.http.base.*,
-                            org.apache.felix.http.cometd.*
+                            org.apache.felix.http.cometd.internal
                         </Private-Package>
-                        <Import-Package>
-                            org.osgi.service.http.*,
-                            org.cometd,
-                            org.apache.felix.http.api,
-                            *;resolution:=optional
-                        </Import-Package>
+                        <Embed-Dependency>
+                            cometd-jetty;inline=true,
+                            jetty-util;inline=true,
+                            jetty-util5;inline=true
+                        </Embed-Dependency>
                     </instructions>
                 </configuration>
             </plugin>
@@ -77,27 +73,17 @@
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty</artifactId>
-            <version>6.1.24</version>
+            <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.mortbay.jetty</groupId>
             <artifactId>jetty-util</artifactId>
-            <version>6.1.24</version>
+            <version>6.1.26</version>
         </dependency>
         <dependency>
             <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-sslengine</artifactId>
-            <version>6.1.24</version>
-        </dependency>
-        <dependency>
-            <groupId>org.cometd.java</groupId>
-            <artifactId>cometd-api</artifactId>
-            <version>1.0.beta7</version>
+            <artifactId>jetty-util5</artifactId>
+            <version>6.1.26</version>
         </dependency>
         <dependency>
             <groupId>org.mortbay.jetty</groupId>
@@ -105,14 +91,14 @@
             <version>6.1.15</version>
         </dependency>
         <dependency>
-            <groupId>${pom.groupId}</groupId>
-            <artifactId>org.apache.felix.http.api</artifactId>
-            <version>${pom.version}</version>
+            <groupId>org.cometd.java</groupId>
+            <artifactId>cometd-api</artifactId>
+            <version>1.1.4</version>
         </dependency>
         <dependency>
-            <groupId>${pom.groupId}</groupId>
+            <groupId>${project.groupId}</groupId>
             <artifactId>org.apache.felix.http.base</artifactId>
-            <version>${pom.version}</version>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 
diff --git a/http/api/src/main/java/org/apache/felix/http/api/CometdService.java b/http/cometd/src/main/java/org/apache/felix/http/cometd/CometdService.java
similarity index 95%
rename from http/api/src/main/java/org/apache/felix/http/api/CometdService.java
rename to http/cometd/src/main/java/org/apache/felix/http/cometd/CometdService.java
index b6cb11d..b55df45 100644
--- a/http/api/src/main/java/org/apache/felix/http/api/CometdService.java
+++ b/http/cometd/src/main/java/org/apache/felix/http/cometd/CometdService.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.felix.http.api;
+package org.apache.felix.http.cometd;
 
 import javax.servlet.ServletException;
 import org.cometd.Bayeux;
diff --git a/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java b/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java
index b61a645..3dd832e 100644
--- a/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java
+++ b/http/cometd/src/main/java/org/apache/felix/http/cometd/internal/CometdServiceImpl.java
@@ -16,7 +16,7 @@
  */
 package org.apache.felix.http.cometd.internal;
 
-import org.apache.felix.http.api.CometdService;
+import org.apache.felix.http.cometd.CometdService;
 import org.apache.felix.http.base.internal.logger.SystemLogger;
 import org.cometd.Bayeux;
 import org.mortbay.cometd.continuation.ContinuationCometdServlet;
diff --git a/http/samples/cometd/pom.xml b/http/samples/cometd/pom.xml
index d3b9e24..20be53c 100644
--- a/http/samples/cometd/pom.xml
+++ b/http/samples/cometd/pom.xml
@@ -83,7 +83,7 @@
         </dependency>
         <dependency>
             <groupId>${pom.groupId}</groupId>
-            <artifactId>org.apache.felix.http.api</artifactId>
+            <artifactId>org.apache.felix.http.cometd</artifactId>
             <version>${pom.version}</version>
         </dependency>
     </dependencies>
diff --git a/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/Activator.java b/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/Activator.java
index a631a79..5da3117 100644
--- a/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/Activator.java
+++ b/http/samples/cometd/src/main/java/org/apache/felix/http/samples/cometd/Activator.java
@@ -26,7 +26,7 @@
 import javax.servlet.Servlet;
 import javax.servlet.ServletException;
 import java.util.Hashtable;
-import org.apache.felix.http.api.CometdService;
+import org.apache.felix.http.cometd.CometdService;
 import org.cometd.Bayeux;
 
 public final class Activator
