diff --git a/src/main/resources/md2tei.xsl b/src/main/resources/md2tei.xsl
index 79d61bdabfa635d566103fb5ac1118ddee4ef4da..805fa8f66f7e0897c84dc9bdbfb4989f15bdbedf 100644
--- a/src/main/resources/md2tei.xsl
+++ b/src/main/resources/md2tei.xsl
@@ -14,8 +14,22 @@
                                 <xsl:value-of select="."/>
                             </title>
                         </xsl:for-each>
-
-                        <xsl:for-each select=".//md:agent">
+                        
+                        <xsl:call-template name="convert-authorlike">
+                            <xsl:with-param name="role">author</xsl:with-param>
+                        </xsl:call-template>
+                        <xsl:call-template name="convert-authorlike">
+                            <xsl:with-param name="role">sponsor</xsl:with-param>
+                        </xsl:call-template>
+                        <xsl:call-template name="convert-authorlike">
+                            <xsl:with-param name="role">funder</xsl:with-param>
+                        </xsl:call-template>
+                        <xsl:call-template name="convert-authorlike">
+                            <xsl:with-param name="role">contributor</xsl:with-param>
+                            <xsl:with-param name="element">principal</xsl:with-param>
+                        </xsl:call-template>
+                        
+                        <xsl:for-each select=".//md:agent[@role != 'author' and @role != 'sponser' and @role != 'funder' and @role != 'principal']">
                             <respStmt>
                                 <resp>
                                     <xsl:value-of select="@role"/>
@@ -287,7 +301,16 @@ and fill out source information in that edition's metadata.</xsl:comment>
             </xsl:if>
             <xsl:value-of select="$source"/>
         </date>
-    </xsl:template>
+    </xsl:template>    
 
+    <xsl:template name="convert-authorlike">
+        <xsl:param name="role"/>
+        <xsl:param name="element" select="$role"/>
+        <xsl:for-each select=".//md:generic/md:provided/md:title[@role = $role]">
+            <xsl:element name="{$element}">
+                <xsl:value-of select="."/>
+            </xsl:element>
+        </xsl:for-each>        
+    </xsl:template>
 
 </xsl:stylesheet>