diff --git a/res/res_agi.c b/res/res_agi.c
index d1218e2881918b396ed8e40df8ee156bbf0adf0c..9d082ef6d409a349e7c780d1882f22203fed1bda 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -902,6 +902,9 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, char
 			return RESULT_FAILURE;
 		}
 		
+		/* Request a video update */
+		ast_indicate(chan, AST_CONTROL_VIDUPDATE);
+	
 		chan->stream = fs;
 		ast_applystream(chan,fs);
 		/* really should have checks */
@@ -965,6 +968,9 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, char
                                         }
                             	}
 				break;
+			case AST_FRAME_VIDEO:
+				ast_writestream(fs, f);
+				break;
 			}
 			ast_frfree(f);
 			if (gotsilence)