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 e3b59855573b60974db865a56a168e69927b6b0f..d68b47d9e55a3b808d5717fbd1600e65d5430ff6 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
@@ -41,10 +41,12 @@ public class OAIPMHImpl implements OAIPMHProducer {
   // FINALS
   // **
 
-  private static final String SCHEMA_LOCATIONS =
-      "http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd "
-          + "http://www.openarchives.org/OAI/2.0/ https://www.openarchives.org/OAI/2.0/OAI-PMH.xsd "
-          + "http://purl.org/dc/elements/1.1/ https://dublincore.org/schemas/xmls/simpledc20021212.xsd";
+  private static final String OAIPMH_SCHEMA_LOCATION =
+      "http://www.openarchives.org/OAI/2.0/ https://www.openarchives.org/OAI/2.0/OAI-PMH.xsd";
+  private static final String OAIDC_SCHEMA_LOCATION =
+      "http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd";
+  private static final String DC_SCHEMA_LOCATION =
+      "http://purl.org/dc/elements/1.1/ https://dublincore.org/schemas/xmls/simpledc20021212.xsd";
 
   // **
   // STATICS
@@ -117,7 +119,7 @@ public class OAIPMHImpl implements OAIPMHProducer {
     String result = "";
 
     try {
-      result = getStringFromJAXBOAIElement(
+      result = getStringFromJAXBOAIElement(verb,
           handleRequest(verb, identifier, metadataPrefix, set, from, until, resumptionToken));
     } catch (ParseException e) {
       // TODO Auto-generated catch block
@@ -139,7 +141,7 @@ public class OAIPMHImpl implements OAIPMHProducer {
     String result = "";
 
     try {
-      result = getStringFromJAXBOAIElement(
+      result = getStringFromJAXBOAIElement(verb,
           handleRequest(verb, identifier, metadataPrefix, set, from, until, resumptionToken));
     } catch (ParseException e) {
       // TODO Auto-generated catch block
@@ -658,21 +660,33 @@ public class OAIPMHImpl implements OAIPMHProducer {
    * other way has been working here! I tried EVERYTHING else! Really!
    * </p>
    * 
+   * @param theVerb
    * @param theJAXBOAIElement
    * @return
    */
-  private static String getStringFromJAXBOAIElement(
+  private static String getStringFromJAXBOAIElement(final String theVerb,
       final JAXBElement<OAIPMHtype> theJAXBOAIElement) {
 
     String result = "";
 
+    // Always add OAIPMH schema location.
+    String schemaLocations = OAIPMH_SCHEMA_LOCATION;
+    // Add OAI_DC and DC schema location if needed.
+    if (theVerb.equals("GetRecord") || theVerb.endsWith("ListRecords")) {
+      schemaLocations += OAIDC_SCHEMA_LOCATION + " " + DC_SCHEMA_LOCATION;
+    }
+
+    // PLEASE NOTE We always get oai_dc and dc prefixes defined in the root element due to the
+    // bindings.xml file. Seems to be no problem for the time being.
+
     try {
-      // FIXME GEMOKEL: Add schemaLocations to OAI root element.
+      // OBACHT! GEMOKEL! Add schemaLocations to OAI root element here!
       JAXBContext jc = JAXBContext.newInstance(OAIPMHtype.class);
 
       Marshaller marshaller = jc.createMarshaller();
+      // Comment out if one-line-output wanted!
       marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-      marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, SCHEMA_LOCATIONS);
+      marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocations);
 
       StringWriter sw = new StringWriter();
       marshaller.marshal(theJAXBOAIElement, sw);
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHProducer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHProducer.java
index 00e40ddda6270934e4ca296e91d24cf4507021ad..77d71174979a2f2d8d61427441f1336c57c09fda 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHProducer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHProducer.java
@@ -1,15 +1,13 @@
 package info.textgrid.middleware;
 
-import info.textgrid.middleware.oaipmh.OAIPMHtype;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.FormParam;
 import javax.ws.rs.core.MediaType;
-import javax.xml.bind.JAXBElement;
 
 /**
  * <p>
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OaiPmhClient.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OaiPmhClient.java
index 8705269a2e8a848fc392685b7b97b6c23a404746..299b78fb99c2eeb6909d50c44ef2d315501e9b1f 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OaiPmhClient.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OaiPmhClient.java
@@ -1,12 +1,10 @@
 package info.textgrid.middleware;
 
-import info.textgrid.middleware.oaipmh.OAIPMHtype;
 import java.text.ParseException;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
-import javax.xml.bind.JAXBElement;
 import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
 
 /**
diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
index 3257291ee4d8f8ec22399efac663ffc08f08f2aa..a3bdc2e3c327a1392f93aed330ff21448fc9fe80 100644
--- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
+++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
@@ -468,6 +468,7 @@ public class OaiPmhTest {
     OaiPmhTest.identifierList.setIdentifierField("textgridUri");
     OaiPmhTest.identifierList.setRepositoryObjectURIPrefix("textgrid:");
     OaiPmhTest.identifierList.setSearchResponseSize("100");
+
     String r = this.request.getRequest("", "", "", "", "", "", "");
     System.out.println(r);
     System.out.println("-----------------------------------\n");