diff --git a/lib/url.c b/lib/url.c
index 5810e859b76f1de0ed95f3bb6bf4b6a0a571424e..31e1459ca787fd0072ef2d7a24f5347a94ba219c 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -1930,6 +1930,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,
 #ifdef HAVE_SIGACTION
     struct sigaction sigact;
     sigaction(SIGALRM, NULL, &sigact);
+    keep_sigact = sigact;
     sigact.sa_handler = alarmfunc;
 #ifdef SA_RESTART
     /* HPUX doesn't have SA_RESTART but defaults to that behaviour! */