diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java
index cd756f17838c9fefd3cd1f0b6da6531ee187dc0d..3a31a2f7a78bbd4e665b643ab0ef8fd62f8f24d6 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java
@@ -154,6 +154,7 @@ public class RecordDelivererDC extends RecordDelivererAbstract {
    */
   private GetResponse furtherDCElements(String id) {
 
+    // TODO WHY adding .0 here??
     if (!id.endsWith(".0")) {
       id = id.concat(".0");
     }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java
index bfdd1c061a6b63e10368196fc37738cff5c65acf..a2cd671748d11373a6748a34d8dfb793582a673e 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java
@@ -269,12 +269,21 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract {
 
       if (this.textgrid) {
         Subject subject = new Subject();
-        subject.setValue(
-            OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".value"));
-        subject.setSchemeURI(
-            OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.type"));
-        subject.setSubjectScheme(
-            OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.value"));
+        String value =
+            OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".value");
+        if (!value.isEmpty()) {
+          subject.setValue(value);
+        }
+        String scheme =
+            OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.value");
+        if (!scheme.isEmpty()) {
+          subject.setSubjectScheme(scheme);
+        }
+        String schemeURI =
+            OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.type");
+        if (schemeURI.isEmpty()) {
+          subject.setSchemeURI(schemeURI);
+        }
         subjects.getSubject().add(subject);
       }
 
@@ -286,10 +295,11 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract {
         List<String> sList = OaipmhUtilities.listFieldLoader(this.jsonObj, subjectField);
         for (String s : sList) {
           Subject subject = new Subject();
-          subject.setValue(s);
-          // TODO Extract subject schema and schema URI somehow?
-          // subject.setSchemeURI();
-          // subject.setSubjectScheme();
+          if (!s.isEmpty()) {
+            subject.setValue(s);
+          }
+          // TODO Extract subject schema and schema URI somehow? Set accordingly like in TG part
+          // above.
           subjects.getSubject().add(subject);
         }
       }