diff --git a/bin/smartlink b/bin/smartlink
index 6db0785848230fe0392623538b2b6cac1b1cfefa..b877a076bd76717dc1f279cbccd1761ccbb1a938 100755
--- a/bin/smartlink
+++ b/bin/smartlink
@@ -151,6 +151,11 @@ if test x$# != x0 ; then
       LDOPTS="$LDOPTS -Wl,-rpath,$RPATH"
      fi
    ;;
+   UnixWare\ 7.*)
+     if test x$LINKING != xno -a "x$RPATH" != x ; then
+       LDOPTS="$LDOPTS -YP, $RPATH"
+     fi
+   ;;
    *)
     LD_LIBRARY_PATH="$RPATH"
     LD_RUN_PATH="$RPATH"
diff --git a/src/smartlink.c b/src/smartlink.c
index 21e5c3011c11c153b2974b3ccc7199558bfedd4b..9535631eb1d75900246e718b39d3e2381178620b 100644
--- a/src/smartlink.c
+++ b/src/smartlink.c
@@ -1,5 +1,5 @@
 /*
- * $Id: smartlink.c,v 1.6 2000/03/25 22:46:29 hubbe Exp $
+ * $Id: smartlink.c,v 1.7 2000/06/16 17:36:25 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.6 2000/03/25 22:46:29 hubbe Exp $\n"
+	    "$Id: smartlink.c,v 1.7 2000/06/16 17:36:25 grubba Exp $\n"
 	    "Usage:\n"
 	    "\t%s binary [args]\n",
 	    argv[0]);
@@ -259,6 +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_)
+    if (linking) {
+      new_argv[new_argc++] = "-YP,";
+      new_argv[new_argc++] = rpath;
+    }
 #elif defined(USE_Wl)
     if (linking) {
       new_argv[new_argc++] = full_rpath;