diff --git a/bin/smartlink b/bin/smartlink
index b877a076bd76717dc1f279cbccd1761ccbb1a938..7192e6222192733c608bc5128ef0abd1e7ebad91 100755
--- a/bin/smartlink
+++ b/bin/smartlink
@@ -153,7 +153,7 @@ if test x$# != x0 ; then
    ;;
    UnixWare\ 7.*)
      if test x$LINKING != xno -a "x$RPATH" != x ; then
-       LDOPTS="$LDOPTS -YP, $RPATH"
+       LDOPTS="$LDOPTS -Xlinker -YP, -Xlinker $RPATH"
      fi
    ;;
    *)
diff --git a/src/smartlink.c b/src/smartlink.c
index 9535631eb1d75900246e718b39d3e2381178620b..f6385a0ad166407ae9b79f4d362e391863ceaa0d 100644
--- a/src/smartlink.c
+++ b/src/smartlink.c
@@ -1,5 +1,5 @@
 /*
- * $Id: smartlink.c,v 1.7 2000/06/16 17:36:25 grubba Exp $
+ * $Id: smartlink.c,v 1.8 2000/06/16 17:45:14 grubba Exp $
  *
  * smartlink - A smarter linker.
  * Based on the /bin/sh script smartlink 1.23.
@@ -87,7 +87,7 @@ int main(int argc, char **argv)
 
   if (!strcmp(argv[1], "-v")) {
     fprintf(stdout,
-	    "$Id: smartlink.c,v 1.7 2000/06/16 17:36:25 grubba Exp $\n"
+	    "$Id: smartlink.c,v 1.8 2000/06/16 17:45:14 grubba Exp $\n"
 	    "Usage:\n"
 	    "\t%s binary [args]\n",
 	    argv[0]);
@@ -259,9 +259,11 @@ int main(int argc, char **argv)
 #ifdef USE_RPATH
     new_argv[new_argc++] = "-rpath";
     new_argv[new_argc++] = rpath;
-#elif defined(USE_YP_)
+#elif defined(USE_XLINKER_YP_)
     if (linking) {
+      new_argv[new_argc++] = "-Xlinker";
       new_argv[new_argc++] = "-YP,";
+      new_argv[new_argc++] = "-Xlinker";
       new_argv[new_argc++] = rpath;
     }
 #elif defined(USE_Wl)