diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index c4bac93bbd6b486158602bb3919164267ceceb8a..93505cbb41c7f62ece00817ed33fdce169d30faf 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -13400,6 +13400,9 @@ static char *handle_ss7_block_cic(struct ast_cli_entry *e, int cmd, struct ast_c
 	else
 		ast_cli(a->fd, "CIC %d already locally blocked\n", cic);
 
+	/* Break poll on the linkset so it sends our messages */
+	pthread_kill(linksets[linkset-1].master, SIGURG);
+
 	return CLI_SUCCESS;
 }
 
@@ -13439,6 +13442,9 @@ static char *handle_ss7_block_linkset(struct ast_cli_entry *e, int cmd, struct a
 		ast_mutex_unlock(&linksets[linkset-1].lock);
 	}
 
+	/* Break poll on the linkset so it sends our messages */
+	pthread_kill(linksets[linkset-1].master, SIGURG);
+
 	return CLI_SUCCESS;
 }
 
@@ -13492,6 +13498,10 @@ static char *handle_ss7_unblock_cic(struct ast_cli_entry *e, int cmd, struct ast
 
 	if (blocked > 0)
 		ast_cli(a->fd, "Sent unblocking request for linkset %d on CIC %d\n", linkset, cic);
+
+	/* Break poll on the linkset so it sends our messages */
+	pthread_kill(linksets[linkset-1].master, SIGURG);
+
 	return CLI_SUCCESS;
 }
 
@@ -13532,6 +13542,9 @@ static char *handle_ss7_unblock_linkset(struct ast_cli_entry *e, int cmd, struct
 		ast_mutex_unlock(&linksets[linkset-1].lock);
 	}
 
+	/* Break poll on the linkset so it sends our messages */
+	pthread_kill(linksets[linkset-1].master, SIGURG);
+
 	return CLI_SUCCESS;
 }