diff --git a/2-metadata-processor.py b/2-metadata-processor.py
index 1b1d00d339e5ab5003469cd28f07f89fe5154f2e..49a9ad0aa250bba92e8753546c8027e785d41daa 100644
--- a/2-metadata-processor.py
+++ b/2-metadata-processor.py
@@ -89,13 +89,20 @@ def list_to_dictlist( the_input, the_context=None ):
         if the_context == 'responsibleParty':
 
             try:
+                # the following applies to legacy metadata
                 parent_organisation, child_organisation = out_item['organisationName'].split('/')
                 parent_organisation = parent_organisation.strip()
                 child_organisation = child_organisation.strip()
             except:
-                parent_organisation, child_organisation = out_item['organisationName'], None
-                parent_organisation = parent_organisation.strip()
-                child_organisation = None
+                try:
+                    # the following applies to Dublin Core metadata
+                    my_re = re.compile(r"(?P<organisationName>[^\(\)]+)(\((?P<individualName>.*)\))")
+                    parent_organisation = my_re.match(out_item['organisationName']).groupdict()['organisationName'].strip()
+                    child_organisation  = my_re.match(out_item['organisationName']).groupdict()['individualName'].strip()
+                except:
+                    parent_organisation, child_organisation = out_item['organisationName'], None
+                    parent_organisation = parent_organisation.strip()
+                    child_organisation = None
 
             out_item['organisationName'] = parent_organisation