diff --git a/ckanext/odsh/harvesters/statistikamtnordharvester.py b/ckanext/odsh/harvesters/statistikamtnordharvester.py
index 6e5d567974441657c681de0015e55f055cafca22..003691cfcae566b1bb81c505d820f47c779f20a1 100755
--- a/ckanext/odsh/harvesters/statistikamtnordharvester.py
+++ b/ckanext/odsh/harvesters/statistikamtnordharvester.py
@@ -133,6 +133,10 @@ class StatistikamtNordHarvester(ODSHBaseHarvester):
         schema.update({'temporal_end': [
             toolkit.get_validator('ignore_empty'),
             toolkit.get_converter('convert_to_extras')]})
+        schema.update({'issued': [
+            toolkit.get_validator('ignore_missing'),
+            toolkit.get_validator('ignore_empty'),
+            toolkit.get_converter('convert_to_extras')]})
 
     def map_fields(self, context, harvest_object):
         values = json.loads(harvest_object.content)
diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index fb0f65477161e55d77cbf13360ae3ab335335e66..4dcff1703b219f6a9bc6e910e2a5bf5bc0b8f4e3 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -3,14 +3,18 @@ import ckan.plugins as plugins
 import ckan.plugins.toolkit as toolkit
 from ckan.lib.plugins import DefaultTranslation
 from ckan.lib.plugins import DefaultDatasetForm
+from ckan.logic.validators import tag_string_convert
 from ckan.common import OrderedDict
 from ckanext.odsh.lib.uploader import ODSHResourceUpload
 import ckan.lib.helpers as helpers
 import helpers as odsh_helpers
+
+from itertools import count
 from routes.mapper import SubMapper
 from pylons import config
 import urllib2
 import csv
+import re
 
 import logging
 
@@ -19,7 +23,7 @@ log = logging.getLogger(__name__)
 _ = toolkit._
 
 def odsh_get_facet_items_dict(name, limit=None):
-    ''' 
+    '''
     Gets all facets like 'get_facet_items_dict' but sorted alphabetically
     instead by count.
     '''
@@ -51,7 +55,7 @@ def odsh_convert_groups_string(value,context):
                 ret.append(g)
     return ret
 
-     
+
 def odsh_now():
     return helpers.render_datetime(datetime.datetime.now(),"%Y-%m-%d")
 
@@ -98,6 +102,34 @@ def known_spatial_uri(key, data, errors, context):
     data[('extras', new_index+1, 'key')] = 'spatial'
     data[('extras', new_index+1, 'value')] = spatial
 
+def odsh_tag_name_validator(value, context):
+    tagname_match = re.compile('[\w \-.\:\(\)]*$', re.UNICODE)
+    if not tagname_match.match(value):
+        raise toolkit.Invalid(_('Tag "%s" must be alphanumeric '
+                        'characters or symbols: -_.:()') % (value))
+    return value
+
+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(',') \
+                if tag.strip()]
+    else:
+        tags = data[key]
+
+    current_index = max( [int(k[1]) for k in data.keys() if len(k) == 3 and k[0] == 'tags'] + [-1] )
+
+    for num, tag in zip(count(current_index+1), tags):
+        data[('tags', num, 'name')] = tag
+
+    for tag in tags:
+        toolkit.get_validator('tag_length_validator')(tag, context)
+        odsh_tag_name_validator(tag, context)
+
 
 class OdshIcapPlugin(plugins.SingletonPlugin):
     plugins.implements(plugins.IUploader, inherit=True)
@@ -224,6 +256,13 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
         for field in self._fields():
             schema.update({field: [toolkit.get_converter('not_empty')]})
 
+        for i, item in enumerate(schema['tags']['name']):
+            if item == toolkit.get_validator('tag_name_validator'):
+                schema['tags']['name'][i] = toolkit.get_validator('odsh_tag_name_validator')
+        for i, item in enumerate(schema['tag_string']):
+            if item == tag_string_convert:
+                schema['tag_string'][i] = odsh_tag_string_convert
+
         schema['resources'].update({
                 'url' : [ toolkit.get_converter('not_empty') ]
                 })
@@ -258,5 +297,6 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
 
     def get_validators(self):
         return { 'odsh_convert_groups_string': odsh_convert_groups_string,
-                 'known_spatial_uri': known_spatial_uri}
+                 'known_spatial_uri': known_spatial_uri,
+                 'odsh_tag_name_validator': odsh_tag_name_validator}
 
diff --git a/ckanext/odsh/templates/package/snippets/info.html b/ckanext/odsh/templates/package/snippets/info.html
index c602b0c6065af22a5cbfa64d1427eaaad676c11d..d1d52432974a7729118777a98aeb54d0620c0954 100644
--- a/ckanext/odsh/templates/package/snippets/info.html
+++ b/ckanext/odsh/templates/package/snippets/info.html
@@ -60,7 +60,7 @@ Example:
 
             {% block last_change %}
             <div class="last-change-detail info-detail">
-                {%set issued=h.odsh_render_datetime(pkg.issued) if pkg.issued else '-'%}
+                {%set issued=h.odsh_render_datetime(pkg.issued) if pkg.issued else h.odsh_render_datetime(pkg.metadata_created)%}
                 <div>{{ _('issued') }}:</div>
                 {{issued}}
             </div>
@@ -95,4 +95,4 @@ Example:
     </div>
 </section>
 {% endif %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/ckanext/odsh/templates/snippets/package_item.html b/ckanext/odsh/templates/snippets/package_item.html
index 94e4a0667260607c01967b1580486c33829192ea..fcc2c3ee73179fd8a42f279bd12468b01536ebb8 100644
--- a/ckanext/odsh/templates/snippets/package_item.html
+++ b/ckanext/odsh/templates/snippets/package_item.html
@@ -28,7 +28,7 @@ Example:
 {% set access_count=(package.tracking_summary.total if package.tracking_summary) or '-' %}
 {% set timerange_label ='Zeitraum' %}
 {% set access_count_label ='Aufrufe' %}
-{% set issued = h.odsh_render_datetime(package.issued) if package.issued else '-'%}
+{% set issued = h.odsh_render_datetime(package.issued) if package.issued else h.odsh_render_datetime(package.metadata_created) %}
 {% set categories = package.groups|map(attribute='display_name')|join(', ') if package.groups else '-' %}
 
 {% block package_item %}
@@ -109,4 +109,4 @@ Example:
   {% endblock %}
   {% endblock %}
 </div>
-{% endblock %}
\ No newline at end of file
+{% endblock %}