diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml
index 32db2b0038dd54eedf56fec6c6c8c26cd1c56e50..33cd7525fbfc1b22edc7ea87ae2e57ae0d3f26cf 100644
--- a/oaipmh-core/pom.xml
+++ b/oaipmh-core/pom.xml
@@ -5,7 +5,7 @@
 	<parent>
 		<artifactId>oaipmh</artifactId>
 		<groupId>info.textgrid.middleware</groupId>
-		<version>3.3.4</version>
+		<version>3.3.5</version>
 	</parent>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh-core</artifactId>
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java
index 302675328eac3cb1df94daa028754fdc74967bc3..890419d4ac11403eb71c28c6171732f6044c62ed 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java
@@ -168,57 +168,63 @@ public class OAIPMHUtilities {
    * @return A resumption token if applicable, null otherwise.
    */
   public static ResumptionTokenType getResumptionToken(final long completeListSize,
-      final String resumptionToken, Map<String, Integer> cursorCollector, final String scrollID,
-      final int searchResponseSize, final int i) {
-
-    log.info("Creating a ResumptionToken:\n " +
-        "CompleteListSize: " + completeListSize + "\n" +
-        "ResumptionToken: " + resumptionToken + "\n" +
-        "CursorCollector: " + cursorCollector + "\n" +
-        "ScrollID: " + scrollID + "\n" +
-        "SearchResponseSize: " + scrollID + "\n" +
-        "IterationStep: " + i);
-
-    int cursor;
-
-    // Three cases here:
-    // 1. Complete list size is > searchResponseSize and a token already is existing: we need to
-    // check hash map!
-    // 2. Complete list size is > searchResponseSize and we have no token: we do need one!
-    // 3. Complete list size is <= searchResponseSize (we do not need a token! do nothing!)
-
-    if (completeListSize > searchResponseSize) {
-      ResumptionTokenType resTokenForResponse = new ResumptionTokenType();
-
-      if (resumptionToken != null && cursorCollector.containsKey(resumptionToken)) {
-        cursor = cursorCollector.get(resumptionToken).intValue() + i;
-        resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
-        cursorCollector.put(scrollID, cursor);
-      } else {
-        resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize));
-        cursorCollector.put(scrollID, searchResponseSize);
-        cursor = 0;
-      }
-
-      // Set resumption token string if cursor is less then complete list size: More objects can be
-      // delivered!
-      if (cursor < completeListSize) {
-        resTokenForResponse.setValue(scrollID);
-      }
-
-      // Remove resumption token string if cursor is bigger then or equal complete list size: This
-      // is the last response, no more objects are available!
-      if (cursor >= completeListSize) {
-        resTokenForResponse.setValue("");
-      }
-
-      // Set complete list size.
-      resTokenForResponse.setCompleteListSize(BigInteger.valueOf(completeListSize));
-
-      return resTokenForResponse;
-    }
-
-    return null;
-  }
+	      final String resumptionToken, Map<String, Integer> cursorCollector, final String scrollID,
+	      final int searchResponseSize, final int i) {
+
+	    log.info("Creating a ResumptionToken:\n " +
+	        "CompleteListSize: " + completeListSize + "\n" +
+	        "ResumptionToken: " + resumptionToken + "\n" +
+	        "CursorCollector: " + cursorCollector + "\n" +
+	        "ScrollID: " + scrollID + "\n" +
+	        "SearchResponseSize: " + scrollID + "\n" +
+	        "IterationStep: " + i);
+
+	    int cursor;
+
+	    // Three cases here:
+	    // 1. Complete list size is > searchResponseSize and a token already is existing: we need to
+	    // check hash map!
+	    // 2. Complete list size is > searchResponseSize and we have no token: we do need one!
+	    // 3. Complete list size is <= searchResponseSize (we do not need a token! do nothing!)
+
+	    if (completeListSize > searchResponseSize) {
+	      ResumptionTokenType resTokenForResponse = new ResumptionTokenType();
+
+	      if (resumptionToken != null && cursorCollector.containsKey(resumptionToken)) {
+	        cursor = cursorCollector.get(resumptionToken).intValue() + i;
+	        if(cursor-searchResponseSize == 0) {
+	        	cursor *= 2;
+	        }
+	        resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
+	        cursorCollector.put(scrollID, cursor);
+	      } else {
+	        resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize));
+	        cursorCollector.put(scrollID, searchResponseSize);        
+	        cursor = searchResponseSize;
+	        resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
+	        
+	      }
+
+	      // Set resumption token string if cursor is less then complete list size: More objects can be
+	      // delivered!
+	      if (cursor < completeListSize) {    	 
+	        resTokenForResponse.setValue(scrollID);
+	      }
+
+	      // Remove resumption token string if cursor is bigger then or equal complete list size: This
+	      // is the last response, no more objects are available!
+	      if (cursor >= completeListSize) {
+	    	//cursor =;
+	        resTokenForResponse.setValue("");
+	      }
+
+	      // Set complete list size.
+	      resTokenForResponse.setCompleteListSize(BigInteger.valueOf(completeListSize));
+
+	      return resTokenForResponse;
+	    }
+
+	    return null;
+	  }
 
 }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java
index 50b75c1a22427eacf2067912695c3314144bd6f0..6652590d037622cbbcb58ee6bd82a467db7ea485 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererIDIOM.java
@@ -97,6 +97,7 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract {
 	  String scrollID = scrollResp.getScrollId();
 	  
 	  long completeListSize = scrollResp.getHits().totalHits();
+	  //long completeListSize = 70;
 	    //System.out.println(completeListSize);
 	    //System.out.println(completeListSize + " || " + artefactURIs.size());
 	    if (completeListSize > 0) {
diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml
index 5d49cbac1b189f893e8b2d2a0f46aa525e04eeb4..22da6ae4a3156c572759624f3f9c04557e47ae9a 100644
--- a/oaipmh-webapp/pom.xml
+++ b/oaipmh-webapp/pom.xml
@@ -5,7 +5,7 @@
 	<parent>
 		<artifactId>oaipmh</artifactId>
 		<groupId>info.textgrid.middleware</groupId>
-		<version>3.3.4</version>
+		<version>3.3.5</version>
 	</parent>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh-webapp</artifactId>
diff --git a/pom.xml b/pom.xml
index a565323a92893435d9eb66a9967ced917ef955d5..572f428c4babcd646b2cc8e5fd4d41b99aaacca6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh</artifactId>
-	<version>3.3.4</version>
+	<version>3.3.5</version>
 	<packaging>pom</packaging>
 	<name>DARIAHDE :: OAI-PMH DataProvider</name>
 	<properties>