diff --git a/org.osgi.compendium/pom.xml b/org.osgi.compendium/pom.xml
index cd09242..e508363 100644
--- a/org.osgi.compendium/pom.xml
+++ b/org.osgi.compendium/pom.xml
@@ -21,12 +21,14 @@
       <version>${pom.version}</version>
       <scope>provided</scope>
     </dependency>
+<!--
     <dependency>
       <groupId>javax.microedition</groupId>
       <artifactId>javax.microedition</artifactId>
       <version>1.0.4</version>
       <scope>provided</scope>
     </dependency>
+-->
   </dependencies>
   <build>
     <plugins>
@@ -52,4 +54,4 @@
       </plugin>
     </plugins>
   </build>
-</project>
+</project>
diff --git a/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectionFactory.java b/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectionFactory.java
index cb7c396..7df56e4 100644
--- a/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectionFactory.java
+++ b/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectionFactory.java
@@ -17,7 +17,7 @@
  */
 package org.osgi.service.io;
 
-import javax.microedition.io.*;
+//import javax.microedition.io.*;
 import java.io.*;
 
 /**
@@ -56,6 +56,6 @@
 	 * @throws IOException If a <code>javax.microedition.io.Connection</code>
 	 *         object can not not be created.
 	 */
-	public Connection createConnection(String name, int mode, boolean timeouts)
+	public /*Connection*/ Object createConnection(String name, int mode, boolean timeouts)
 			throws IOException;
 }
diff --git a/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectorService.java b/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectorService.java
index 7172b18..cd498d7 100644
--- a/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectorService.java
+++ b/org.osgi.compendium/src/main/java/org/osgi/service/io/ConnectorService.java
@@ -18,7 +18,7 @@
 package org.osgi.service.io;
 
 import java.io.*;
-import javax.microedition.io.*;
+//import javax.microedition.io.*;
 
 /**
  * The Connector Service should be called to create and open
@@ -48,19 +48,19 @@
 	 * 
 	 * @see "javax.microedition.io.Connector.READ"
 	 */
-	public static final int	READ		= Connector.READ;
+	public static final int	READ		= /* Connector.READ */ 1;
 	/**
 	 * Write access mode.
 	 * 
 	 * @see "javax.microedition.io.Connector.WRITE"
 	 */
-	public static final int	WRITE		= Connector.WRITE;
+	public static final int	WRITE		= /* Connector.WRITE */ 2;
 	/**
 	 * Read/Write access mode.
 	 * 
 	 * @see "javax.microedition.io.Connector.READ_WRITE"
 	 */
-	public static final int	READ_WRITE	= Connector.READ_WRITE;
+	public static final int	READ_WRITE	= /* Connector.READ_WRITE */ 3;
 
 	/**
 	 * Create and open a <code>Connection</code> object for the specified name.
@@ -73,7 +73,7 @@
 	 * @throws IOException If some other kind of I/O error occurs.
 	 * @see "javax.microedition.io.Connector.open(String name)"
 	 */
-	public Connection open(String name) throws IOException;
+	public /* Connection */ Object open(String name) throws IOException;
 
 	/**
 	 * Create and open a <code>Connection</code> object for the specified name and
@@ -88,7 +88,7 @@
 	 * @throws IOException If some other kind of I/O error occurs.
 	 * @see "javax.microedition.io.Connector.open(String name, int mode)"
 	 */
-	public Connection open(String name, int mode) throws IOException;
+	public /* Connection */ Object open(String name, int mode) throws IOException;
 
 	/**
 	 * Create and open a <code>Connection</code> object for the specified name,
@@ -105,7 +105,7 @@
 	 * @throws IOException If some other kind of I/O error occurs.
 	 * @see "<code>javax.microedition.io.Connector.open</code>"
 	 */
-	public Connection open(String name, int mode, boolean timeouts)
+	public /* Connection */ Object open(String name, int mode, boolean timeouts)
 			throws IOException;
 
 	/**
