diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 0788957f1614a55e8070d99ae0b5606dba83ccee..d134f6903f98a555574af90d85497dd53c3fcc68 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -9632,6 +9632,7 @@ static void *ss7_linkset(void *data)
 					break;
 				} else {
 					struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_PROCEEDING, };
+					struct ast_frame g = { AST_FRAME_CONTROL, AST_CONTROL_PROGRESS, };
 
 					p = linkset->pvts[chanpos];
 
@@ -9644,6 +9645,8 @@ static void *ss7_linkset(void *data)
 					ast_mutex_lock(&p->lock);
 					zap_queue_frame(p, &f, linkset);
 					p->proceeding = 1;
+					zap_queue_frame(p, &g, linkset);
+					p->progress = 1;
 
 					ast_mutex_unlock(&p->lock);
 				}