diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
index 40345719a3f2c1fe2bc5e5b37809ad6c2c5cf6f7..727d38988d93b53f22709b58c10bc8cf17ffc4e0 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
@@ -34,9 +34,11 @@ public class DublinCoreFieldLoader {
   private static org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class);
 
   /**
-   * This function takes the results of the ElasticSearch resuest 
-   * and fills the String-Lists with the specific values for the dublin core field
-   * @param responseOfGetRequest result of the ElasticSearch request from a getRequest (Single Result)
+   * This function takes the results of the ElasticSearch resuest and fills the String-Lists with
+   * the specific values for the dublin core field
+   * 
+   * @param responseOfGetRequest result of the ElasticSearch request from a getRequest (Single
+   *        Result)
    * @param fields String List for the specific dublin core field
    * @return String List containing the values for the specific dublin core field
    */
@@ -115,35 +117,35 @@ public class DublinCoreFieldLoader {
 
   @Deprecated
   public static List<String> fillList(GetResponse responseWorkValues, String[] fields) {
-    
+
     List<String> list = new ArrayList<String>();
-    
-    if (responseWorkValues.isExists()) {    	
+
+    if (responseWorkValues.isExists()) {
       if (fields != null) {
-        for (String field : fields) {      	  
+        for (String field : fields) {
           if (responseWorkValues.getSourceAsMap().get(field) == null) {
             String[] requestedField = field.split("\\.");
             Map<String, Object> nestedMap = responseWorkValues.getSourceAsMap();
             String valueOfRequestedField = null;
             Map<String, Object> nestedMap2 = null;
-            for (int i = 0; i < requestedField.length; i++) {          	  
+            for (int i = 0; i < requestedField.length; i++) {
               if (i < requestedField.length - 1 && nestedMap != null
                   && nestedMap.get(requestedField[i]) != null) {
-            	  
+
                 nestedMap2 = (Map<String, Object>) nestedMap.get(requestedField[i]);
               }
               if (i == requestedField.length - 1 &&
                   nestedMap2 != null && nestedMap2.get(requestedField[i]) != null) {
                 valueOfRequestedField = nestedMap2.get(requestedField[i]).toString();
-                
+
                 if (valueOfRequestedField.length() > 0) {
-                	
+
                   list.add(valueOfRequestedField);
                 }
               }
               nestedMap = nestedMap2;
             }
-          } else {     	
+          } else {
             list.add(responseWorkValues.getSourceAsMap().get(field).toString());
           }
         }
@@ -158,9 +160,19 @@ public class DublinCoreFieldLoader {
    * @return
    */
   public static List<String> fillList(SearchHit hit, String[] fields) {
+    return fillList(hit, fields, "");
+  }
+
+  /**
+   * @param hit
+   * @param fields
+   * @param prefix
+   * @return
+   */
+  public static List<String> fillList(SearchHit hit, String[] fields, String prefix) {
 
     List<String> list = new ArrayList<String>();
-    
+
     if (fields != null) {
       for (String field : fields) {
         if (hit.getSourceAsMap().get(field) == null) {
@@ -173,8 +185,8 @@ public class DublinCoreFieldLoader {
                 && nestedMap.get(requestedField[i]) != null) {
               try {
                 nestedMap2 = (Map<String, Object>) nestedMap.get(requestedField[i]);
-              } catch (ClassCastException cce) {
-
+              } catch (ClassCastException e) {
+                e.printStackTrace();
               }
             }
             if (i == requestedField.length - 1 &&
@@ -187,7 +199,10 @@ public class DublinCoreFieldLoader {
             nestedMap = nestedMap2;
           }
         } else {
-          list.add(hit.getSourceAsMap().get(field).toString());
+          // Only add list entry if prefix is empty or beginning with prefix otherwise!
+          if (prefix.isEmpty() || hit.getSourceAsMap().get(field).toString().startsWith(prefix)) {
+            list.add(hit.getSourceAsMap().get(field).toString());
+          }
         }
       }
     }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java
index 37b24222c945fc4ab26e03d261df53f262a1768c..345108e1f1649c53cd4aaf04ebca93f752397d9d 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java
@@ -165,12 +165,12 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
     long size = listFurtherValues.getHits().totalHits;
     setResultSize(size);
 
-    log.info(" ## hits --> " + size);
+    log.debug("hits: " + size);
 
     for (SearchHit hit : listFurtherValues.getHits().getHits()) {
       i++;
 
-      log.info(" ## hit --> " + hit.getId());
+      log.debug("hit " + i + ": " + hit.getId());
 
       // Handle TextGrid.
       if (this.textgrid) {
@@ -190,26 +190,18 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
       // Handle DARIAH.
       else if (this.dariah) {
 
-        log.info(" ## dateOfObjectCreation --> " + this.dateOfObjectCreation);
+        log.debug("dateOfObjectCreation: " + this.dateOfObjectCreation);
 
         JSONObject json = new JSONObject(hit.getSourceAsMap());
 
-        // Get modifiedDate field.
-        // FIXME Möglicherweise doppelt gemoppelt? Sind auch einzelne Abfragefelder in
-        // OAIPMHUtilities.fieldLoader() abgebildet?
-        if (this.dateOfObjectCreation.contains(OAIPMHUtilities.ES_DIVIDER_CHAR)) {
-          this.datestamp = OAIPMHUtilities.fieldLoader(json, this.dateOfObjectCreation);
-        } else {
-          this.datestamp = hit.getSourceAsMap().get(this.dateOfObjectCreation).toString();
-        }
-        // Convert datestamp.
+        // Get modifiedDate field and convert datestamp.
+        this.datestamp = OAIPMHUtilities.fieldLoader(json, this.dateOfObjectCreation);
         try {
-
-          log.info(" ## datestamp --> " + this.datestamp);
+          log.debug("datestamp: " + this.datestamp);
 
           this.datestamp = OAIPMHUtilities.convertDateFormat(this.datestamp).toXMLFormat();
 
-          log.info(" ## datestamp converted --> " + this.datestamp);
+          log.debug("datestamp converted: " + this.datestamp);
 
         } catch (ParseException e) {
           log.error(e.getMessage());
@@ -220,16 +212,9 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract {
         }
 
         // Get identifier field.
-        String identifier = "";
-        // FIXME Möglicherweise doppelt gemoppelt? Sind auch einzelne Abfragefelder in
-        // OAIPMHUtilities.fieldLoader() abgebildet?
-        if (this.identifierField.contains(OAIPMHUtilities.ES_DIVIDER_CHAR)) {
-          identifier = OAIPMHUtilities.fieldLoader(json, this.identifierField);
-        } else {
-          identifier = hit.getSourceAsMap().get(this.identifierField).toString();
-        }
+        String identifier = OAIPMHUtilities.fieldLoader(json, this.identifierField);
 
-        log.info(" ## identifier --> " + identifier);
+        log.debug("identifier: " + identifier);
 
         lit = setListIdentifierHeader(this.datestamp, identifier, lit, set);
       }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
index 3151eeadf71684be329879c5bd1d9c27a8c9829d..94dc1212208bab0b1c3778253898fa29dded46a9 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
@@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.ParseException;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
 import javax.xml.datatype.DatatypeConfigurationException;
 import org.apache.commons.logging.LogFactory;
@@ -264,11 +265,10 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
           // DARIAH search!
           else if (this.dariah == true) {
 
-            System.out.println("  ##  kramsblablaZWO  -->  "
-                + DublinCoreFieldLoader.fillList(hit, DARIAHConstants.IDENTIFIER_LIST));
+            List<String> identifierList =
+                DublinCoreFieldLoader.fillList(hit, DARIAHConstants.IDENTIFIER_LIST, "hdl:");
 
-            String setSpec = "hdl:"
-                + DublinCoreFieldLoader.fillList(hit, DARIAHConstants.IDENTIFIER_LIST).get(0);
+            String setSpec = identifierList.get(0);
 
             System.out.println("  ##  setSpec  -->  " + setSpec);
 
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 8a12aa639ff0c6833e6d209bcd71a3b374a1e5da..6744f47b9382a36a835d9d7f68a448b95c18fc29 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
@@ -138,14 +138,14 @@ public class SetDeliverer {
 
     request.source(searchSourceBuilder);
 
-    log.info(" ## SetDeliverer() request --> " + request);
+    log.debug("request: " + request);
 
     // Get items with TG or DH request.
     SearchResponse getRecordListItems = null;
     try {
       getRecordListItems = OAI_ESClient.getEsClient().search(request, RequestOptions.DEFAULT);
 
-      log.info(" ## SetDeliverer() list item count --> " + getRecordListItems.getHits().totalHits);
+      log.debug("list item count: " + getRecordListItems.getHits().totalHits);
 
     } catch (IOException e) {
       // TODO Auto-generated catch block
@@ -191,7 +191,7 @@ public class SetDeliverer {
 
           String name = entry.getKey();
 
-          log.info(" ## entry key --> " + entry.getKey());
+          log.debug("entry key: " + entry.getKey());
 
           if (name.equals(DH_COLLECTION_FILTER_NAME)) {
             Filter filterCollection =
@@ -202,16 +202,16 @@ public class SetDeliverer {
               // Divide ID and title.
               String combined = b.getKeyAsString();
 
-              log.info(" ## combined --> " + combined);
+              log.debug("combined: " + combined);
 
               int indexOf = combined.indexOf(DH_FIELD_DIVIDER);
               String id = combined.substring(0, indexOf);
 
-              log.info(" ## id --> " + id);
+              log.debug("id: " + id);
 
               String title = combined.substring(indexOf + 1);
 
-              log.info(" ## title --> " + title);
+              log.debug("title: " + title);
 
               // Set set.
               SetType newSet = new SetType();