diff --git a/src/core/cntlr.c b/src/core/cntlr.c
index 8e8bb2d77f38961da98e52104317f1f4130ae90a..63a58ed86811db28d12cc255856ea9b0812c1d3a 100644
--- a/src/core/cntlr.c
+++ b/src/core/cntlr.c
@@ -1780,6 +1780,12 @@ static void cntlr_ieee1905_cmdu_event_handler(void *cntlr,
 	uint8_t srcmac[6], origin[6];
 	uint16_t mid = 0;
 	int len = 0;
+	sigset_t waiting_mask;
+
+	sigpending(&waiting_mask);
+	if (sigismember(&waiting_mask, SIGINT) ||
+			sigismember(&waiting_mask, SIGTERM))
+		return;
 
 	blobmsg_parse(cmdu_attrs, 6, tb, blob_data(msg), blob_len(msg));