diff --git a/src/main/java/org/apache/ode/jacob/Jacob.java b/src/main/java/org/apache/ode/jacob/Jacob.java
index b636994..12fa1d4 100644
--- a/src/main/java/org/apache/ode/jacob/Jacob.java
+++ b/src/main/java/org/apache/ode/jacob/Jacob.java
@@ -41,7 +41,7 @@
     public static <T extends Channel> T newChannel(Class<T> channelType, String description)
         throws IllegalArgumentException
     {
-        return (T) JacobVPU.activeJacobThread().newChannel(channelType, null, description);
+        return (T) JacobVPU.activeJacobThread().newChannel(channelType, description);
     }
 
     /**
diff --git a/src/main/java/org/apache/ode/jacob/JacobThread.java b/src/main/java/org/apache/ode/jacob/JacobThread.java
index 1d95c13..5d2f9ae 100644
--- a/src/main/java/org/apache/ode/jacob/JacobThread.java
+++ b/src/main/java/org/apache/ode/jacob/JacobThread.java
@@ -101,7 +101,7 @@
     /**
      * Create a new channel.
      */
-    public Channel newChannel(Class<?> channelType, String creator, String description);
+    public Channel newChannel(Class<?> channelType, String description);
 
     /**
      * <p>
diff --git a/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java b/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
index ae4db3a..7061f96 100644
--- a/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
+++ b/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
@@ -264,7 +264,7 @@
                     throw new IllegalStateException(
                         "Channel method '" + method + "' must only return void or an implementation of " + Channel.class.getName());
                 }
-                replyChannel = newChannel(method.getReturnType(), "", "Reply Channel");
+                replyChannel = newChannel(method.getReturnType(), "Reply Channel");
                 replyCommChannel = (CommChannel) ChannelFactory.getBackend((Channel)replyChannel);
             }
             
@@ -287,7 +287,7 @@
             _executionQueue.add(grp);
         }
 
-        public Channel newChannel(Class<?> channelType, String creator, String description) {
+        public Channel newChannel(Class<?> channelType, String description) {
             CommChannel chnl = new CommChannel(channelType);
             chnl.setDescription(description);
             _executionQueue.add(chnl);
@@ -491,6 +491,7 @@
                 }
                 
                 if (replyTo != null) {
+                    //XXX: All replys have the same Synch.ret() action 
                     sendMessage(ClassUtil.createMessage(replyTo, ClassUtil.SYNCH_RET_METHOD_ACTION, null, null));
                 }
 			} finally {
