diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/CDOClientProtocol.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/CDOClientProtocol.java
index 6b00ac0..356cfa8 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/CDOClientProtocol.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/CDOClientProtocol.java
@@ -34,7 +34,7 @@
 import org.eclipse.net4j.util.om.monitor.OMMonitor;
 import org.eclipse.net4j.util.om.trace.PerfTracer;
 
-import org.eclipse.emf.spi.cdo.AbstractQueryIteratorImpl;
+import org.eclipse.emf.spi.cdo.AbstractQueryIterator;
 import org.eclipse.emf.spi.cdo.CDOSessionProtocol;
 import org.eclipse.emf.spi.cdo.InternalCDOObject;
 import org.eclipse.emf.spi.cdo.InternalCDOTransaction.InternalCDOCommitContext;
@@ -141,7 +141,7 @@
     send(new ChangeSubscriptionRequest(this, viewId, cdoIDs, subscribeMode, clear));
   }
 
-  public List<Object> query(int viewID, AbstractQueryIteratorImpl<?> queryResult)
+  public List<Object> query(int viewID, AbstractQueryIterator<?> queryResult)
   {
     return send(new QueryRequest(this, viewID, queryResult));
   }
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/QueryRequest.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/QueryRequest.java
index 8cae06f..7bede39 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/QueryRequest.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/net4j/protocol/QueryRequest.java
@@ -21,7 +21,7 @@
 
 import org.eclipse.net4j.util.om.trace.ContextTracer;
 
-import org.eclipse.emf.spi.cdo.AbstractQueryIteratorImpl;
+import org.eclipse.emf.spi.cdo.AbstractQueryIterator;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -36,9 +36,9 @@
 
   private int viewID;
 
-  private AbstractQueryIteratorImpl<?> queryResult;
+  private AbstractQueryIterator<?> queryResult;
 
-  public QueryRequest(CDOClientProtocol protocol, int viewID, AbstractQueryIteratorImpl<?> queryResult)
+  public QueryRequest(CDOClientProtocol protocol, int viewID, AbstractQueryIterator<?> queryResult)
   {
     super(protocol, CDOProtocolConstants.SIGNAL_QUERY);
     this.viewID = viewID;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryCDOIDIteratorImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryCDOIDIteratorImpl.java
index 3ecf4cb..34a8f55 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryCDOIDIteratorImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryCDOIDIteratorImpl.java
@@ -13,7 +13,7 @@
 import org.eclipse.emf.cdo.common.CDOQueryInfo;
 import org.eclipse.emf.cdo.view.CDOView;
 
-import org.eclipse.emf.spi.cdo.AbstractQueryIteratorImpl;
+import org.eclipse.emf.spi.cdo.AbstractQueryIterator;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,7 +21,7 @@
 /**
  * @author Simon McDuff
  */
-public class CDOQueryCDOIDIteratorImpl<CDOID> extends AbstractQueryIteratorImpl<CDOID>
+public class CDOQueryCDOIDIteratorImpl<CDOID> extends AbstractQueryIterator<CDOID>
 {
   public CDOQueryCDOIDIteratorImpl(CDOView view, CDOQueryInfo queryInfo)
   {
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryImpl.java
index 29b8fc4..738e0c5 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryImpl.java
@@ -23,7 +23,7 @@
 import org.eclipse.net4j.util.WrappedException;
 
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.spi.cdo.AbstractQueryIteratorImpl;
+import org.eclipse.emf.spi.cdo.AbstractQueryIterator;
 import org.eclipse.emf.spi.cdo.InternalCDOObject;
 import org.eclipse.emf.spi.cdo.InternalCDOView;
 
@@ -62,7 +62,7 @@
   }
 
   @SuppressWarnings("unchecked")
-  protected <T> AbstractQueryIteratorImpl<T> createQueryResult(Class<T> classObject)
+  protected <T> AbstractQueryIterator<T> createQueryResult(Class<T> classObject)
   {
     CDOQueryInfoImpl queryInfo = createQueryInfo();
     if (classObject.equals(CDOID.class))
@@ -75,14 +75,14 @@
 
   public <T> List<T> getResult(Class<T> classObject)
   {
-    AbstractQueryIteratorImpl<T> queryResult = createQueryResult(classObject);
+    AbstractQueryIterator<T> queryResult = createQueryResult(classObject);
     view.getSession().getSessionProtocol().query(view.getViewID(), queryResult);
     return queryResult.asList();
   }
 
   public <T> BlockingCloseableIterator<T> getResultAsync(Class<T> classObject)
   {
-    final AbstractQueryIteratorImpl<T> queryResult = createQueryResult(classObject);
+    final AbstractQueryIterator<T> queryResult = createQueryResult(classObject);
     final Exception exception[] = new Exception[1];
     Runnable runnable = new Runnable()
     {
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryResultIteratorImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryResultIteratorImpl.java
index c1c729a..e37b712 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryResultIteratorImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/query/CDOQueryResultIteratorImpl.java
@@ -15,7 +15,7 @@
 import org.eclipse.emf.cdo.common.id.CDOID;
 import org.eclipse.emf.cdo.view.CDOView;
 
-import org.eclipse.emf.spi.cdo.AbstractQueryIteratorImpl;
+import org.eclipse.emf.spi.cdo.AbstractQueryIterator;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -23,7 +23,7 @@
 /**
  * @author Simon McDuff
  */
-public class CDOQueryResultIteratorImpl<T> extends AbstractQueryIteratorImpl<T>
+public class CDOQueryResultIteratorImpl<T> extends AbstractQueryIterator<T>
 {
   public CDOQueryResultIteratorImpl(CDOView view, CDOQueryInfo queryInfo)
   {
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractQueryIteratorImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractQueryIterator.java
similarity index 92%
rename from plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractQueryIteratorImpl.java
rename to plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractQueryIterator.java
index be4594e..a00efc6 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractQueryIteratorImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractQueryIterator.java
@@ -21,13 +21,13 @@
 /**
  * @author Simon McDuff
  */
-public abstract class AbstractQueryIteratorImpl<T> extends AbstractQueryResult<T>
+public abstract class AbstractQueryIterator<T> extends AbstractQueryResult<T>
 {
   private static final int UNDEFINED_QUERY_ID = -1;
 
   private ConcurrentValue<Boolean> queryIDSet = new ConcurrentValue<Boolean>(false);
 
-  public AbstractQueryIteratorImpl(CDOView view, CDOQueryInfo queryInfo)
+  public AbstractQueryIterator(CDOView view, CDOQueryInfo queryInfo)
   {
     super(view, queryInfo, UNDEFINED_QUERY_ID);
   }
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java
index ed68cdb..6969b81 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java
@@ -83,7 +83,7 @@
 
   public void changeSubscription(int viewId, List<CDOID> cdoIDs, boolean subscribeMode, boolean clear);
 
-  public List<Object> query(int viewID, AbstractQueryIteratorImpl<?> queryResult);
+  public List<Object> query(int viewID, AbstractQueryIterator<?> queryResult);
 
   public boolean cancelQuery(int queryId);
 
