diff --git a/src/perl/perl-signals.c b/src/perl/perl-signals.c index 897689e1..683b4c3f 100644 --- a/src/perl/perl-signals.c +++ b/src/perl/perl-signals.c @@ -419,6 +419,7 @@ static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func, if (SvTRUE(ERRSV)) { char *error = g_strdup(SvPV_nolen(ERRSV)); + perl_signal_remove_script(script); signal_emit("script error", 2, script, error); g_free(error); rec = NULL; diff --git a/src/perl/perl-sources.c b/src/perl/perl-sources.c index 9f5773f1..9f9ec6b5 100644 --- a/src/perl/perl-sources.c +++ b/src/perl/perl-sources.c @@ -83,6 +83,7 @@ static int perl_source_event(PERL_SOURCE_REC *rec) if (SvTRUE(ERRSV)) { char *error = g_strdup(SvPV_nolen(ERRSV)); + perl_source_remove_script(rec->script); signal_emit("script error", 2, rec->script, error); g_free(error); }