about summary refs log tree commit diff
path: root/Src/signals.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/signals.c')
-rw-r--r--Src/signals.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Src/signals.c b/Src/signals.c
index 50af1b400..60457349b 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -668,6 +668,7 @@ dosavetrap(int sig, int level)
 	st->list = sigfuncs[sig];
 	unsettrap(sig);
     }
+    sigtrapped[sig] = 0;
     notrapfree--;
     PERMALLOC {
 	if (!savetraps)
@@ -829,6 +830,7 @@ endtrapscope(void)
 
 	    if (sigtrapped[sig])
 		unsettrap(sig);
+	    sigtrapped[sig] = st->flags;
 	    if (st->flags) {
 		List list = (st->flags & ZSIG_FUNC) ?
 		    ((Shfunc) st->list)->funcdef : (List) st->list;