diff --git a/Changes b/Changes
index 66f24ea..35f3e02 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.56.2 2018-02-19
+0.56.2 2018-03-07
         - [feature] Introduce meta field retrieval method (diewald)
         - [cleanup] Rename KrillQuery's "_"-method to "nr" to improve
           compatibility with future versions of Java (diewald)
@@ -8,6 +8,10 @@
           snippet generation (diewald)
         - [bugfix] Removed problematic serialization of empty
           annotations (diewald)
+        - [feature] Serialize metadata keywords as arrays, when
+          indexed properly (may require reindexing; diewald)
+        - [feature] Serialize dates in dash separation format, when
+          metadata field name ends with "Date" (diewald)
 
 0.56.1 2018-01-31
         - [bugfix] Changed relation serialization in snippet to work
diff --git a/src/main/java/de/ids_mannheim/korap/response/MetaFields.java b/src/main/java/de/ids_mannheim/korap/response/MetaFields.java
index 213d2d6..e28a404 100644
--- a/src/main/java/de/ids_mannheim/korap/response/MetaFields.java
+++ b/src/main/java/de/ids_mannheim/korap/response/MetaFields.java
@@ -9,7 +9,9 @@
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
+
 import de.ids_mannheim.korap.index.AbstractDocument;
+import de.ids_mannheim.korap.util.KrillDate;
 
 import java.io.IOException;
 
@@ -20,6 +22,7 @@
 import java.io.StringReader;
 
 import java.util.*;
+import java.util.regex.*;
 
 import org.apache.lucene.index.*;
 
@@ -32,6 +35,11 @@
 	// This advices the java compiler to ignore all loggings
     public static final boolean DEBUG = false;
 
+	// TODO:
+	//   This is a temporary indicator to check
+	//   whether a date field is a date
+	private static final Pattern dateKeyPattern = Pattern.compile(".*Date$");
+
 	// Mapper for JSON serialization
     ObjectMapper mapper = new ObjectMapper();
 
@@ -76,10 +84,25 @@
 		// Field has numeric value (possibly a date)
 		if (n != null) {
 
-			// TODO:
-			//   check if the number is a date!
-			mf.type = "type:number";
-			mf.values.add(n.toString());
+			// Check if key indicates a date
+			Matcher dateMatcher = dateKeyPattern.matcher(mf.key);
+			if (dateMatcher.matches()) {
+				mf.type = "type:date";
+
+				// Check structure with KrillDate
+				KrillDate date = new KrillDate(n.toString());
+				if (date != null) {
+
+					// Serialize withz dash separation
+					mf.values.add(date.toDisplay());
+				};
+			}
+
+			// Field is a number
+			else {
+				mf.type = "type:number";
+				mf.values.add(n.toString());
+			};
 		}
 		
 		// Field has a textual value
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestKrillIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestKrillIndex.java
index 3ca878d..96f0249 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestKrillIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestKrillIndex.java
@@ -290,8 +290,8 @@
 			switch (key) {
 			case "pubDate":
 
-				assertEquals("type:number", field.at("/type").asText());
-				assertEquals(20170701, field.at("/value").asInt());
+				assertEquals("type:date", field.at("/type").asText());
+				assertEquals("2017-07-01", field.at("/value").asText());
 				break;
 
 			case "textSigle":
