diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index ef4f08ddf416d2f5542451de29fb53b5a0f5135c..c6b18011ab6d85a6f055ee4ab2a889fcc9a408d8 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -15533,6 +15533,8 @@ static char *sip_unregister(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
 	
 	if ((peer = find_peer(a->argv[2], NULL, load_realtime, FINDPEERS, TRUE))) {
 		if (peer->expire > 0) {
+			AST_SCHED_DEL_UNREF(sched, peer->expire,
+				unref_peer(peer, "remove register expire ref"));
 			expire_register(ref_peer(peer, "ref for expire_register"));
 			ast_cli(a->fd, "Unregistered peer \'%s\'\n\n", a->argv[2]);
 		} else {