diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 083e05335e926e476d252199dc4f76917abf1aae..389d70b879a9ec64dc8fd9834e9cfbd5dba541fd 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -8782,7 +8782,7 @@ static void *ss7_linkset(void *data)
 				ast_mutex_lock(&p->lock);
 				if (p->owner) {
 					p->owner->hangupcause = e->rel.cause;
-					ast_queue_hangup(p->owner);
+					p->owner->_softhangup |= AST_SOFTHANGUP_DEV;
 				} else
 					ast_log(LOG_WARNING, "REL on channel (CIC %d) without owner!\n", p->cic);