diff --git a/src/link.sh b/src/link.sh
index 71ee061..e4030de 100755
--- a/src/link.sh
+++ b/src/link.sh
@@ -13,13 +13,13 @@
 # Otherwise this script is fail-safe, falling back to the original full link
 # command if anything fails.
 
-echo "$LINK " >link.cmd
+echo "$LINK " >link_$PROG.cmd
 exit_value=0
 
 if test "$LINK_AS_NEEDED" = yes; then
   echo "link.sh: \$LINK_AS_NEEDED set to 'yes': invoking linker directly."
-  cat link.cmd
-  if sh link.cmd; then
+  cat link_$PROG.cmd
+  if sh link_$PROG.cmd; then
     exit_value=0
     echo "link.sh: Linked fine"
   else
@@ -49,53 +49,53 @@
 # - Don't remove the last -lm: On HP-UX Vim links OK but crashes when the GTK
 #   GUI is started, because the "floor" symbol could not be resolved.
 #
-  cat link.cmd
-  if sh link.cmd; then
+  cat link_$PROG.cmd
+  if sh link_$PROG.cmd; then
     touch auto/link.sed
-    cp link.cmd linkit.sh
+    cp link_$PROG.cmd linkit_$PROG.sh
     for libname in SM ICE nsl dnet dnet_stub inet socket dir elf iconv Xt Xmu Xp Xpm X11 Xdmcp x w perl dl pthread thread readline m crypt attr; do
       cont=yes
       while test -n "$cont"; do
-        if grep "l$libname " linkit.sh >/dev/null; then
-          if test ! -f link1.sed; then
+        if grep "l$libname " linkit_$PROG.sh >/dev/null; then
+          if test ! -f link1_$PROG.sed; then
             echo "link.sh: OK, linking works, let's try omitting a few libraries."
             echo "link.sh: See auto/link.log for details."
             rm -f auto/link.log
           fi
-          echo "s/-l$libname  *//" >link1.sed
-          sed -f auto/link.sed <link.cmd >linkit2.sh
-          sed -f link1.sed <linkit2.sh >linkit.sh
+          echo "s/-l$libname  *//" >link1_$PROG.sed
+          sed -f auto/link.sed <link_$PROG.cmd >linkit2_$PROG.sh
+          sed -f link1_$PROG.sed <linkit2_$PROG.sh >linkit_$PROG.sh
           # keep the last -lm
-          if test $libname != "m" || grep "lm " linkit.sh >/dev/null; then
+          if test $libname != "m" || grep "lm " linkit_$PROG.sh >/dev/null; then
             echo "link.sh: Trying to omit the $libname library..."
-            cat linkit.sh >>auto/link.log
+            cat linkit_$PROG.sh >>auto/link.log
             # Redirect this link output, it may contain error messages which
             # should be ignored.
-            if sh linkit.sh >>auto/link.log 2>&1; then
+            if sh linkit_$PROG.sh >>auto/link.log 2>&1; then
               echo "link.sh: Vim doesn't need the $libname library!"
-              cat link1.sed >>auto/link.sed
+              cat link1_$PROG.sed >>auto/link.sed
               rm -f auto/pathdef.c
             else
               echo "link.sh: Vim DOES need the $libname library."
               cont=
-              cp link.cmd linkit.sh
+              cp link_$PROG.cmd linkit_$PROG.sh
             fi
           else
             cont=
-            cp link.cmd linkit.sh
+            cp link_$PROG.cmd linkit_$PROG.sh
           fi
         else
           cont=
-          cp link.cmd linkit.sh
+          cp link_$PROG.cmd linkit_$PROG.sh
         fi
       done
     done
     if test ! -f auto/pathdef.c; then
       $MAKE objects/pathdef.o
     fi
-    if test ! -f link1.sed; then
+    if test ! -f link1_$PROG.sed; then
       echo "link.sh: Linked fine, no libraries can be omitted"
-      touch link3.sed
+      touch link3_$PROG.sed
     fi
   else
     exit_value=$?
@@ -107,29 +107,29 @@
 #
 if test -s auto/link.sed; then
   echo "link.sh: Using auto/link.sed file to omit a few libraries"
-  sed -f auto/link.sed <link.cmd >linkit.sh
-  cat linkit.sh
-  if sh linkit.sh; then
+  sed -f auto/link.sed <link_$PROG.cmd >linkit_$PROG.sh
+  cat linkit_$PROG.sh
+  if sh linkit_$PROG.sh; then
     exit_value=0
     echo "link.sh: Linked fine with a few libraries omitted"
   else
     exit_value=$?
     echo "link.sh: Linking failed, making auto/link.sed empty and trying again"
-    mv -f auto/link.sed link2.sed
+    mv -f auto/link.sed link2_$PROG.sed
     touch auto/link.sed
     rm -f auto/pathdef.c
     $MAKE objects/pathdef.o
   fi
 fi
-if test -f auto/link.sed -a ! -s auto/link.sed -a ! -f link3.sed; then
+if test -f auto/link.sed -a ! -s auto/link.sed -a ! -f link3_$PROG.sed; then
   echo "link.sh: Using unmodified link command"
-  cat link.cmd
-  if sh link.cmd; then
+  cat link_$PROG.cmd
+  if sh link_$PROG.cmd; then
     exit_value=0
     echo "link.sh: Linked OK"
   else
     exit_value=$?
-    if test -f link2.sed; then
+    if test -f link2_$PROG.sed; then
       echo "link.sh: Linking doesn't work at all, removing auto/link.sed"
       rm -f auto/link.sed
     fi
@@ -141,7 +141,8 @@
 #
 # cleanup
 #
-rm -f link.cmd linkit.sh link1.sed link2.sed link3.sed linkit2.sh
+rm -f link_$PROG.cmd linkit_$PROG.sh link1_$PROG.sed link2_$PROG.sed \
+  link3_$PROG.sed linkit2_$PROG.sh
 
 #
 # return an error code if something went wrong
