diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index de3f67a741a43d5054826170498e14abf9d6b8ef..c1e276fb2182e1afb16b02f4f448193158350227 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -3750,6 +3750,13 @@ struct ast_frame  *zt_read(struct ast_channel *ast)
 	
 	index = zt_get_index(ast, p, 0);
 	
+	/* Hang up if we don't really exist */
+	if (index < 0)	{
+		ast_log(LOG_WARNING, "We dont exist?\n");
+		ast_mutex_unlock(&p->lock);
+		return NULL;
+	}
+	
 	p->subs[index].f.frametype = AST_FRAME_NULL;
 	p->subs[index].f.datalen = 0;
 	p->subs[index].f.samples = 0;
@@ -3761,13 +3768,6 @@ struct ast_frame  *zt_read(struct ast_channel *ast)
 	p->subs[index].f.src = "zt_read";
 	p->subs[index].f.data = NULL;
 	
-	/* Hang up if we don't really exist */
-	if (index < 0)	{
-		ast_log(LOG_WARNING, "We dont exist?\n");
-		ast_mutex_unlock(&p->lock);
-		return NULL;
-	}
-	
 	/* make sure it sends initial key state as first frame */
 	if (p->radio && (!p->firstradio))
 	{