diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml
index 129b74217c0de78e29217a79bc1916b9919cce66..32db2b0038dd54eedf56fec6c6c8c26cd1c56e50 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.3</version>
+		<version>3.3.4</version>
 	</parent>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh-core</artifactId>
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
index 366343d31e1bc83c394e1651680487c610e43b48..1a31c6115a8ae5e188cab871cc1b0cacaeaad94e 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
@@ -327,7 +327,39 @@ public class OAIPMHImpl implements OAIPMHProducer {
   public OAIPMHtype listSetsRequest(OAIPMHtype oaipmhRoot, RequestType request) {
 
     ListSetsType sl = this.setList.setListBuilder();
-    oaipmhRoot.setListSets(sl);
+
+
+    if (this.setList.requestChecker(request)) {
+    	oaipmhRoot.setListSets(sl);
+    }else {
+        List<String> errorValues = new ArrayList<String>();
+        ErrorHandler badArgument = new ErrorHandler();
+	    if (request.getIdentifier() != null) {
+	       errorValues.add("identifier");
+	    }
+	    if (request.getFrom() != null) {
+	       errorValues.add("from");
+	    }
+	    if (request.getMetadataPrefix() != null) {
+	       errorValues.add("metadataPrefix");
+	    }
+	    if (request.getResumptionToken() != null) {
+	       errorValues.add("ResumptionToken");
+	    }
+	    if (request.getUntil() != null) {
+	       errorValues.add("until");
+	    }
+	    if (request.getSet() != null) {
+	       errorValues.add("set");
+	    }
+	    
+	    badArgument.setError(TGConstants.OAI_BAD_ARGUMENT, "The request includes illegal arguments: " + errorValues);
+		oaipmhRoot.getError().add(badArgument.getError());
+    }
+
+        
+        
+   
 
     return oaipmhRoot;
   }
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 1457e8932cfedd5fae9c8c5a729c4c1c8c02e811..302675328eac3cb1df94daa028754fdc74967bc3 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java
@@ -49,6 +49,13 @@ public class OAIPMHUtilities {
 
   private static org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class);
 
+  
+  public static boolean isOAIPMH_RequestArgument(String verb){
+	String allowedArgument= "^[identifier,from,until,set,resumptionToken,metadataPrefix]*$";
+	return verb.matches(allowedArgument);
+  }
+  
+  
   /**
    * <p>
    * Since TextGrid just supports DC the only returned MetadataFormat is DublinCore.
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
index 2e81caf1b3dcadc435a5c8ea20ada593351a4d54..090d48b707d783c25903e870f6234853c8194046 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
@@ -15,6 +15,7 @@ import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.SearchHit;
 import info.textgrid.middleware.oaipmh.ListSetsType;
+import info.textgrid.middleware.oaipmh.RequestType;
 import info.textgrid.middleware.oaipmh.SetType;
 import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes;
 
@@ -61,8 +62,12 @@ public class SetDeliverer {
 
     SearchRequestBuilder request = OAI_ESClient.getOaiESClient()
         .prepareSearch(OAI_ESClient.getEsIndex()).setTypes(OAI_ESClient.getEsType())
-        .setQuery(aggQuery).addField(this.formatField).addField(this.identifierField)
-        .addField("project.value").addField("project.id").setSize(100000);
+        .setQuery(aggQuery)
+        .addField(this.formatField)
+        .addField(this.identifierField)
+        .addField("project.value")
+        .addField("project.id")        
+        .setSize(100000);
 
     SearchResponse getRecordListItems = request.execute().actionGet();
 
@@ -127,6 +132,34 @@ public class SetDeliverer {
 
     return setList;
   }
+  
+  /**
+   * <p>
+   * Checking the request if all necessary values are set or not allowed values are not set.
+   * </p>
+   * 
+   * @param request the initially request from the OAIPMG client
+   * @return a boolean indicating the correctness of the request
+   */
+  public boolean requestChecker(RequestType request) {
+
+    boolean noArguments;
+
+    if (request.getFrom() != null ||
+        request.getIdentifier() != null ||
+        request.getMetadataPrefix() != null) {
+      noArguments = false;
+    } else if (request.getResumptionToken() != null ||
+        request.getSet() != null ||
+        request.getUntil() != null) {
+
+      noArguments = false;
+    } else {
+      noArguments = true;
+    }
+    return noArguments;
+  }
+  
 
   /**
    * @return
diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml
index 96c1f0ef0ad79ae66f6a2fbd2b92051658c166bc..5d49cbac1b189f893e8b2d2a0f46aa525e04eeb4 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.3</version>
+		<version>3.3.4</version>
 	</parent>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh-webapp</artifactId>
diff --git a/pom.xml b/pom.xml
index 6245a22a0666d43becb26e5e5aa3d2e29e81d0ef..a565323a92893435d9eb66a9967ced917ef955d5 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.3</version>
+	<version>3.3.4</version>
 	<packaging>pom</packaging>
 	<name>DARIAHDE :: OAI-PMH DataProvider</name>
 	<properties>