- (djm) Merged big SCO portability patch from Tim Rice
   <tim@multitalents.net>
diff --git a/auth-passwd.c b/auth-passwd.c
index 18f9b3c..8dd6034 100644
--- a/auth-passwd.c
+++ b/auth-passwd.c
@@ -75,6 +75,11 @@
 # include <hpsecurity.h>
 # include <prot.h>
 #endif
+#ifdef HAVE_SCO_PROTECTED_PW
+# include <sys/security.h>
+# include <sys/audit.h>
+# include <prot.h>
+#endif /* HAVE_SCO_PROTECTED_PW */
 #if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW)
 # include <shadow.h>
 #endif
@@ -108,6 +113,9 @@
 #ifdef __hpux
 	struct pr_passwd *spw;
 #endif
+#ifdef HAVE_SCO_PROTECTED_PW
+	struct pr_passwd *spw;
+#endif /* HAVE_SCO_PROTECTED_PW */
 #if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW)
 	struct spwd *spw;
 #endif
@@ -181,10 +189,18 @@
 	if (spw != NULL) 
 		pw_password = spw->sp_pwdp;
 #endif /* defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW) */
+
+#ifdef HAVE_SCO_PROTECTED_PW
+	spw = getprpwnam(pw->pw_name);
+	if (spw != NULL) 
+		pw_password = spw->ufld.fd_encrypt;
+#endif /* HAVE_SCO_PROTECTED_PW */
+
 #if defined(HAVE_GETPWANAM) && !defined(DISABLE_SHADOW)
 	if (issecure() && (spw = getpwanam(pw->pw_name)) != NULL)
 		pw_password = spw->pwa_passwd;
 #endif /* defined(HAVE_GETPWANAM) && !defined(DISABLE_SHADOW) */
+
 #if defined(__hpux)
 	if (iscomsec() && (spw = getprpwnam(pw->pw_name)) != NULL)
 		pw_password = spw->ufld.fd_encrypt;