diff --git a/import/xsl/doaj.xsl b/import/xsl/doaj.xsl
index a77177fde69494d42038abf1c6b9fd2406d490f2..611bf64f45a6ff17f4b635aa3486c455c013def5 100644
--- a/import/xsl/doaj.xsl
+++ b/import/xsl/doaj.xsl
@@ -68,6 +68,12 @@
                             <field name="author">
                                 <xsl:value-of select="normalize-space()"/>
                             </field>
+                            <!-- use first author value for sorting -->
+                            <xsl:if test="position()=1">
+                                <field name="author_sort">
+                                    <xsl:value-of select="normalize-space()"/>
+                                </field>
+                            </xsl:if>
                         </xsl:if>
                     </xsl:for-each>
                 </xsl:if>
diff --git a/import/xsl/dspace.xsl b/import/xsl/dspace.xsl
index 6dcbd734b2e6980fec572b2532e2e769e4cb82bc..81ff3284850ecb303f20e553767f81925872b473 100644
--- a/import/xsl/dspace.xsl
+++ b/import/xsl/dspace.xsl
@@ -100,6 +100,12 @@
                             <field name="author">
                                 <xsl:value-of select="normalize-space()"/>
                             </field>
+                            <!-- use first author value for sorting -->
+                            <xsl:if test="position()=1">
+                                <field name="author_sort">
+                                    <xsl:value-of select="normalize-space()"/>
+                                </field>
+                            </xsl:if>
                         </xsl:if>
                     </xsl:for-each>
                 </xsl:if>
diff --git a/import/xsl/gsdl.xsl b/import/xsl/gsdl.xsl
index 33f231fe91eb19b4bfc0d3fd11c65ab568b05d30..497532680d13097521068a94d330a14dbb986468 100644
--- a/import/xsl/gsdl.xsl
+++ b/import/xsl/gsdl.xsl
@@ -84,6 +84,12 @@
                             <field name="author">
                                 <xsl:value-of select="normalize-space()"/>
                             </field>
+                            <!-- use first author value for sorting -->
+                            <xsl:if test="position()=1">
+                                <field name="author_sort">
+                                    <xsl:value-of select="normalize-space()"/>
+                                </field>
+                            </xsl:if>
                         </xsl:if>
                     </xsl:for-each>
                 </xsl:if>
diff --git a/import/xsl/ndltd.xsl b/import/xsl/ndltd.xsl
index fbffa8938d85ac6d5aa624643581f3552b246e33..00759d962aee379e2e3c81a0503cb3972f2789c6 100644
--- a/import/xsl/ndltd.xsl
+++ b/import/xsl/ndltd.xsl
@@ -161,6 +161,12 @@
                             <field name="author">
                                 <xsl:value-of select="normalize-space()"/>
                             </field>
+                            <!-- use first author value for sorting -->
+                            <xsl:if test="position()=1">
+                                <field name="author_sort">
+                                    <xsl:value-of select="normalize-space()"/>
+                                </field>
+                            </xsl:if>
                         </xsl:if>
                     </xsl:for-each>
                 </xsl:if>
diff --git a/import/xsl/nlm_ojs.xsl b/import/xsl/nlm_ojs.xsl
index 2f2e130ee20bea0db5cd94fe61d14d189df184d6..a535a03b3128a76071067fe95d0453821f5bd583 100644
--- a/import/xsl/nlm_ojs.xsl
+++ b/import/xsl/nlm_ojs.xsl
@@ -134,11 +134,17 @@
 
                 <!-- AUTHOR -->
                 <xsl:for-each select="//nlm:contrib[@contrib-type='author']/nlm:name">
-                        <xsl:if test="normalize-space()">
-                            <field name="author">
-                                <xsl:value-of select="nlm:surname[normalize-space()]" />, <xsl:value-of select="nlm:given-names[normalize-space()]" />
+                    <xsl:if test="normalize-space()">
+                        <field name="author">
+                            <xsl:value-of select="nlm:surname[normalize-space()]" />, <xsl:value-of select="nlm:given-names[normalize-space()]" />
+                        </field>
+                        <!-- use first author value for sorting -->
+                        <xsl:if test="position()=1">
+                            <field name="author_sort">
+                                <xsl:value-of select="normalize-space()"/>
                             </field>
                         </xsl:if>
+                    </xsl:if>
                 </xsl:for-each>
 
                 <!-- TITLE -->
diff --git a/import/xsl/ojs.xsl b/import/xsl/ojs.xsl
index 3d8a138b349c74e5cbfadb6fb57682c007c377f5..b9cf6eaa5e3dbbe05b3955f7ee602510a22a0d66 100644
--- a/import/xsl/ojs.xsl
+++ b/import/xsl/ojs.xsl
@@ -62,6 +62,12 @@
                             <field name="author">
                                 <xsl:value-of select="normalize-space()"/>
                             </field>
+                            <!-- use first author value for sorting -->
+                            <xsl:if test="position()=1">
+                                <field name="author_sort">
+                                    <xsl:value-of select="normalize-space()"/>
+                                </field>
+                            </xsl:if>
                         </xsl:if>
                     </xsl:for-each>
                 </xsl:if>
diff --git a/import/xsl/vudl_FOXML.xsl b/import/xsl/vudl_FOXML.xsl
index b868469457002922d7c4af97e90d93566c719e04..9f6434b0f697e5724fc5d7eecfbec9e5884cf9a2 100644
--- a/import/xsl/vudl_FOXML.xsl
+++ b/import/xsl/vudl_FOXML.xsl
@@ -389,6 +389,22 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
                             <field name="author">
                                 <xsl:value-of select="normalize-space()"/>
                             </field>
+                            <!-- use first author value for sorting -->
+                            <xsl:if test="position()=1">
+                                <field name="author_sort">
+                                    <xsl:value-of select="normalize-space()"/>
+                                </field>
+                            </xsl:if>
+                        </xsl:if>
+                    </xsl:for-each>
+                </xsl:if>
+
+                <xsl:if test="$DC//dc:contributor">
+                    <xsl:for-each select="$DC//dc:contributor">
+                        <xsl:if test="normalize-space()">
+                            <field name="author2">
+                                <xsl:value-of select="normalize-space()"/>
+                            </field>
                         </xsl:if>
                     </xsl:for-each>
                 </xsl:if>