- (djm) Use SA_INTERRUPT along SA_RESTART if present (equivalent for
   SunOS)
diff --git a/ChangeLog b/ChangeLog
index 3196199..43cd083 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,8 @@
  - (djm) Swapped tests for no_libsocket and no_libnsl in configure.in. 
    Patch from Marek Michalkiewicz <marekm@amelek.gda.pl>
  - (djm) Doc fixes from Pekka Savola <pekkas@netcore.fi>
+ - (djm) Use SA_INTERRUPT along SA_RESTART if present (equivalent for 
+   SunOS)
 
 20010217
  - (bal) OpenBSD Sync:
@@ -4022,4 +4024,4 @@
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.790 2001/02/18 01:58:24 djm Exp $
+$Id: ChangeLog,v 1.791 2001/02/18 02:05:52 djm Exp $
diff --git a/misc.c b/misc.c
index 47de873..4ec5d55 100644
--- a/misc.c
+++ b/misc.c
@@ -112,6 +112,10 @@
 		if (sig == SIGCHLD)
 			sa.sa_flags |= SA_RESTART;
 #endif
+#ifdef SA_INTERRUPT
+		if (sig == SIGCHLD)
+			sa.sa_flags |= SA_INTERRUPT;
+#endif
 		sa.sa_handler = act;
 		if (sigaction(sig, &sa, NULL) == -1)
 			return (mysig_t) -1;
diff --git a/scp.c b/scp.c
index 268643b..834deb6 100644
--- a/scp.c
+++ b/scp.c
@@ -1224,8 +1224,12 @@
 		struct sigaction sa;
 		sa.sa_handler = updateprogressmeter;
 		sigemptyset((sigset_t *)&sa.sa_mask);
+		sa.sa_flags = 0;
 #ifdef SA_RESTART
-		sa.sa_flags = SA_RESTART;
+		sa.sa_flags |= SA_RESTART;
+#endif
+#ifdef SA_INTERRUPT
+		sa.sa_flags |= SA_INTERRUPT;
 #endif
 		sigaction(SIGALRM, &sa, NULL);
 		alarmtimer(1);