diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index 6462e580e14931d552e88e4d9a2998b449df83c2..b4365123dacb299afda520206df777495aa9723a 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -77,7 +77,7 @@ def odsh_group_id_selected(selected, group_id):
 
 
 def known_spatial_uri(key, data, errors, context):
-    value = _extract_value(key, data, 'spatial_uri')
+    value = _extract_value(data, 'spatial_uri')
 
     if not value:
         raise toolkit.Invalid('spatial_uri:odsh_spatial_uri_error_label')
@@ -115,7 +115,7 @@ def known_spatial_uri(key, data, errors, context):
     data[('extras', new_index+1, 'value')] = spatial
 
 
-def _extract_value(key, data, field):
+def _extract_value(data, field):
     key = None
     for k in data.keys():
         if data[k] == field:
@@ -123,12 +123,20 @@ def _extract_value(key, data, field):
             break
     if key is None:
         return None
-
     return data[(key[0], key[1], 'value')]
 
+def _set_value(data, field, value):
+    key = None
+    for k in data.keys():
+        if data[k] == field:
+            key = k
+            break
+    if key is None:
+        return None
+    data[(key[0], key[1], 'value')] = value
 
 def odsh_validate_extra_date(key, field, data, errors, context):
-    value = _extract_value(key, data, field)
+    value = _extract_value(data, field)
 
     if not value:
         # Statistikamt Nord does not always provide temporal_start/end,
@@ -137,10 +145,10 @@ def odsh_validate_extra_date(key, field, data, errors, context):
             raise toolkit.Invalid(field+':odsh_'+field+'_error_label')
     else:
         try:
-            # date.split('T')[0] will yield "2012-01-01"
-            # no matter if the date is like "2012-01-01" or "2012-01-01T00:00:00"
-            datetime.datetime.strptime(
-                value.split('T')[0], '%Y-%m-%d').isoformat()
+            dt=parse(value, dayfirst=True)
+            _set_value(data, field, dt.isoformat())
+            # datetime.datetime.strptime(
+            #    value.split('T')[0], '%Y-%m-%d').isoformat()
         except ValueError:
             raise toolkit.Invalid(field+':odsh_'+field+'_not_date_error_label')
 
@@ -168,7 +176,6 @@ def odsh_tag_string_convert(key, data, errors, context):
     '''Takes a list of tags that is a comma-separated string (in data[key])
     and parses tag names. These are added to the data dict, enumerated. They
     are also validated.'''
-
     if isinstance(data[key], basestring):
         tags = [tag.strip()
                 for tag in data[key].split(',')