diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index f2859ed04d33fd55d2c35a6606223322839ada5d..d2fe2d98c52ae64c21957d68b52787def3d2c43d 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -801,6 +801,8 @@ static int agent_hangup(struct ast_channel *ast)
 				ast_device_state_changed("Agent/%s", p->agent);
 				p->loginchan[0] = '\0';
 				p->logincallerid[0] = '\0';
+				if (persistent_agents)
+					dump_agents();
 			}
 		} else if (p->dead) {
 			ast_mutex_lock(&p->chan->lock);