diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c
index 7a94dc82eb..30272d92d4 100644
--- a/src/mod/applications/mod_conference/mod_conference.c
+++ b/src/mod/applications/mod_conference/mod_conference.c
@@ -1884,6 +1884,26 @@ static void check_avatar(conference_member_t *member, switch_bool_t force)
 	}
 }
 
+static void check_flush(conference_member_t *member)
+{
+	int flushed;
+
+	if (!member->channel || !switch_channel_test_flag(member->channel, CF_VIDEO)) {
+		return;
+	}
+	
+	flushed = flush_video_queue(member->video_queue);
+	
+	if (flushed && member->auto_avatar) {
+		switch_channel_video_sync(member->channel);
+		
+		switch_img_free(&member->avatar_png_img);
+		member->avatar_patched = 0;
+		reset_video_bitrate_counters(member);
+		member->blanks = 0;
+		member->auto_avatar = 0;
+	}
+}
 
 static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thread, void *obj)
 {
@@ -2030,7 +2050,7 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread
 					size = switch_queue_size(imember->video_queue);
 				} while(size > 0);
 
-				if (switch_test_flag(imember, MFLAG_CAN_BE_SEEN) && imember->video_flow != SWITCH_MEDIA_FLOW_SENDONLY) {
+				if (switch_test_flag(imember, MFLAG_CAN_BE_SEEN) && imember->video_layer_id > -1 && imember->video_flow != SWITCH_MEDIA_FLOW_SENDONLY) {
 					if (img) {
 						imember->good_img++;
 						if ((imember->good_img % (int)(conference->video_fps.fps * 10)) == 0) {
@@ -2054,31 +2074,14 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread
 								//if (layer) {
 									//layer->is_avatar = 1;
 								//}
-
+								
 								imember->auto_avatar = 1;
 							}
 						}
 					}
 				}
 			} else {
-				int flushed = flush_video_queue(imember->video_queue);
-
-				if (flushed && imember->auto_avatar) {
-					switch_channel_video_sync(imember->channel);
-
-					switch_img_free(&imember->avatar_png_img);
-					imember->avatar_patched = 0;
-					reset_video_bitrate_counters(imember);
-					
-					if (layer) {
-						layer->is_avatar = 0;
-						imember->auto_avatar = 0;
-					}
-					
-					imember->blanks = 0;
-				} else {
-					
-				}
+				check_flush(imember);
 			}
 			
 			layer = NULL;
@@ -4441,6 +4444,7 @@ static void conference_set_video_floor_holder(conference_obj_t *conference, conf
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "Adding video floor %s\n",
 						  switch_channel_get_name(member->channel));
 
+		check_flush(member);
 		switch_core_session_video_reinit(member->session);
 		conference->video_floor_holder = member->id;
 		member_update_status_field(member);