diff --git a/agent/ChangeLog b/agent/ChangeLog
index 1fa304777..21515b866 100644
--- a/agent/ChangeLog
+++ b/agent/ChangeLog
@@ -1,3 +1,7 @@
+2002-09-04  Neal H. Walfield  <neal@g10code.de>
+
+	* gpg-agent.c (main): Use sigaction, not signal.
+
 2002-09-03  Neal H. Walfield  <neal@g10code.de>
 
 	* findkey.c: Include <fcntl.h>.
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index a29737089..91be014a0 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -632,12 +632,18 @@ main (int argc, char **argv )
 #ifdef USE_GNU_PTH
       if (!disable_pth)
         {
+	  struct sigaction sa;
+
           if (!pth_init ())
             {
               log_error ("failed to initialize the Pth library\n");
               exit (1);
             }
-          signal (SIGPIPE, SIG_IGN);
+
+	  sa.sa_handler = SIG_IGN;
+	  sigemptyset (&sa.sa_mask);
+	  sa.sa_flags = 0;
+	  sigaction (SIGPIPE, &sa, NULL);
           handle_connections (fd);
         }
       else