diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index da9d9d998c4a38e9aa6f53b3d5fb6f6cf3a7f57b..babb5c8172cf5c397cc020488d492ead003f3560 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -488,9 +488,16 @@ static int agent_hangup(struct ast_channel *ast)
 	} else if (p->chan) {
 		/* Not dead -- check availability now */
 		ast_mutex_lock(&p->lock);
-		/* check_availability(p, 1); */
-		/* Store last disconnect time */
-		gettimeofday(&p->lastdisc, NULL);
+		if (strlen(p->loginchan)) {
+			if (!p->wrapuptime)
+				check_availability(p, 1);
+			else {
+				/* XXX Need to add support for wrapuptime on callback agents */
+			}
+		} else {
+			/* Store last disconnect time */
+			gettimeofday(&p->lastdisc, NULL);
+		}
 		ast_mutex_unlock(&p->lock);
 	}
 	return 0;