diff --git a/src/main/java/org/apache/ode/jacob/Process.java b/src/main/java/org/apache/ode/jacob/RunnableProcess.java
similarity index 93%
rename from src/main/java/org/apache/ode/jacob/Process.java
rename to src/main/java/org/apache/ode/jacob/RunnableProcess.java
index ea00f49..c844180 100644
--- a/src/main/java/org/apache/ode/jacob/Process.java
+++ b/src/main/java/org/apache/ode/jacob/RunnableProcess.java
@@ -25,7 +25,7 @@
  * aspect of the process.
  */
 @SuppressWarnings("serial")
-public abstract class Process implements Runnable, Serializable {
+public abstract class RunnableProcess implements Runnable, Serializable {
 
     public String toString() {
         return "<Process:" + getClass().getSimpleName() + ">";
diff --git a/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java b/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java
index a30f2b1..5c4c7ce 100644
--- a/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java
+++ b/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java
@@ -18,7 +18,7 @@
  */
 package org.apache.ode.jacob.examples.cell;
 
-import org.apache.ode.jacob.Process;
+import org.apache.ode.jacob.RunnableProcess;
 import org.apache.ode.jacob.oo.ReceiveProcess;
 import org.apache.ode.jacob.oo.Val;
 
@@ -31,7 +31,7 @@
  * Cell(self, val) = self ? [ read(r) = { Cell(self, val) | r ! val(val) } & write(newVal) = { Cell(self, newVal) } ]
  * </code>
  */
-public class CELL_<T> extends Process {
+public class CELL_<T> extends RunnableProcess {
     private static final long serialVersionUID = 1550566086202728251L;
 
     private Cell _self;
diff --git a/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java b/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
index 7027c3b..98c5a24 100644
--- a/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
+++ b/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
@@ -24,7 +24,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ode.jacob.Process;
+import org.apache.ode.jacob.RunnableProcess;
 import org.apache.ode.jacob.oo.Val;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
 import org.apache.ode.jacob.vpu.JacobVPU;
@@ -62,7 +62,7 @@
     }
 
     @SuppressWarnings("serial")
-    static class CellTest1 extends Process {
+    static class CellTest1 extends RunnableProcess {
         public void run() {
             Cell cell = newChannel(Cell.class, "cell");
             Val ret = newChannel(Val.class, "val");
diff --git a/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java b/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
index d189814..1a9c543 100644
--- a/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
+++ b/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
@@ -19,7 +19,7 @@
 package org.apache.ode.jacob.examples.eratosthenes;
 
 
-import org.apache.ode.jacob.Process;
+import org.apache.ode.jacob.RunnableProcess;
 import org.apache.ode.jacob.oo.ReceiveProcess;
 import org.apache.ode.jacob.oo.Synch;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
@@ -41,7 +41,7 @@
  *
  * @author Maciej Szefler <a href="mailto:mbs@fivesight.com">mbs</a>
  */
-public class Sieve extends Process {
+public class Sieve extends RunnableProcess {
   private static final long serialVersionUID = -1303509567096202776L;
 
   private static int _cnt = 0;
@@ -63,7 +63,7 @@
    *  Counter(out, n) := out.val(n) | Counter(out, n+1)
    * </em></pre>
    */
-  private static class Counter extends Process {
+  private static class Counter extends RunnableProcess {
     private static final long serialVersionUID = 4739323750438991003L;
 
     private NaturalNumberStream _out;
@@ -95,7 +95,7 @@
    *
    *
    */
-  private static final class Head extends Process {
+  private static final class Head extends RunnableProcess {
     private static final long serialVersionUID = 1791641314141082728L;
 
     NaturalNumberStream _in;
@@ -124,7 +124,7 @@
     }
   }
 
-  private static final class Print extends Process {
+  private static final class Print extends RunnableProcess {
     private static final long serialVersionUID = -3134193737519487672L;
 
     private NaturalNumberStream _in;
@@ -151,7 +151,7 @@
    *     ! in ? [val(n)={ if(n mod prime <> 0) out.val(n) }
    * </em></prime>
    */
-  private static class PrimeFilter extends Process {
+  private static class PrimeFilter extends RunnableProcess {
     private static final long serialVersionUID = 1569523200422202448L;
 
     private int _prime;
diff --git a/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java b/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java
index 448f804..4dac54a 100644
--- a/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java
+++ b/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java
@@ -27,7 +27,7 @@
 import org.apache.ode.jacob.ChannelRef;
 import org.apache.ode.jacob.Message;
 import org.apache.ode.jacob.MessageListener;
-import org.apache.ode.jacob.Process;
+import org.apache.ode.jacob.RunnableProcess;
 import org.apache.ode.jacob.examples.sequence.Sequence;
 import org.apache.ode.jacob.oo.Channel;
 import org.apache.ode.jacob.oo.ReceiveProcess;
@@ -61,7 +61,7 @@
  * 
  */
 @SuppressWarnings("serial")
-public class HelloWorld extends Process {
+public class HelloWorld extends RunnableProcess {
 
     public static interface Callback<T, R extends Channel> extends Channel {
 
@@ -69,7 +69,7 @@
 
     }
 
-    static class ReliablePrinterProcess extends Process {
+    static class ReliablePrinterProcess extends RunnableProcess {
         private Callback<String, Synch> in;
 
         @JsonCreator
@@ -89,7 +89,7 @@
         }
     }
 
-    static class ReliableStringEmitterProcess extends Process {
+    static class ReliableStringEmitterProcess extends RunnableProcess {
         private String str;
         private Callback<String, Synch> to;
 
@@ -119,7 +119,7 @@
         }
     }
 
-    static class PrinterProcess extends Process {
+    static class PrinterProcess extends RunnableProcess {
         private Val _in;
 
         @JsonCreator
@@ -138,7 +138,7 @@
         }
     }
 
-    static class StringEmitterProcess extends Process {
+    static class StringEmitterProcess extends RunnableProcess {
         private String str;
         private Val to;
 
@@ -153,7 +153,7 @@
         }
     }
 
-    static class ForwarderProcess extends Process {
+    static class ForwarderProcess extends RunnableProcess {
         private Val in;
         private Val out;
 
@@ -266,7 +266,7 @@
         }
     }
     
-    static class StringEmitterRunnable extends Process {
+    static class StringEmitterRunnable extends RunnableProcess {
         private String str;
         private ChannelRef to;
 
@@ -300,7 +300,7 @@
 			return new SequenceItemEmitter(greetings[step], done, out);
         }
 
-		static class SequenceItemEmitter extends Process {
+		static class SequenceItemEmitter extends RunnableProcess {
 			private final String string;
 			private final Synch done;
 			private final Val out;
diff --git a/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java b/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
index d626394..8ea152c 100644
--- a/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
+++ b/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
@@ -19,7 +19,7 @@
 package org.apache.ode.jacob.examples.sequence;
 
 
-import org.apache.ode.jacob.Process;
+import org.apache.ode.jacob.RunnableProcess;
 import org.apache.ode.jacob.oo.ReceiveProcess;
 import org.apache.ode.jacob.oo.Synch;
 
@@ -35,7 +35,7 @@
  * Abstract process that executes a number of steps sequentially.
  */
 @SuppressWarnings("serial")
-public abstract class Sequence extends Process {
+public abstract class Sequence extends RunnableProcess {
     private final SequenceData data = new SequenceData();
 
     /**
diff --git a/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java b/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
index 22de017..1be2a21 100644
--- a/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
+++ b/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
@@ -19,7 +19,7 @@
 package org.apache.ode.jacob.examples.synch;
 
 
-import org.apache.ode.jacob.Process;
+import org.apache.ode.jacob.RunnableProcess;
 import org.apache.ode.jacob.oo.ReceiveProcess;
 import org.apache.ode.jacob.oo.Synch;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
@@ -38,7 +38,7 @@
  */
 public class SynchPrinter {
 
-    public static final class SystemPrinter extends Process {
+    public static final class SystemPrinter extends RunnableProcess {
         private static final long serialVersionUID = -8516348116865575605L;
 
         private SynchPrint _self;
@@ -58,7 +58,7 @@
         }
     }
 
-    public static final class Tester extends Process {
+    public static final class Tester extends RunnableProcess {
         private static final long serialVersionUID = 7899682832271627464L;
 
         public void run() {
