diff --git a/src/switch_core_media_bug.c b/src/switch_core_media_bug.c
index cd6ea89846..83296481bb 100644
--- a/src/switch_core_media_bug.c
+++ b/src/switch_core_media_bug.c
@@ -577,10 +577,9 @@ static void *SWITCH_THREAD_FUNC video_bug_thread(switch_thread_t *thread, void *
 		switch_status_t status;
 		int w = 0, h = 0, ok = 1;
 
+		flush_video_queue(main_q, 1);
 
 		if ((status = switch_queue_pop(main_q, &pop)) == SWITCH_STATUS_SUCCESS) {
-			switch_img_free(&img);
-
 			if (!pop) {
 				goto end;
 			}
@@ -589,12 +588,11 @@ static void *SWITCH_THREAD_FUNC video_bug_thread(switch_thread_t *thread, void *
 
 			w = img->d_w;
 			h = img->d_h;
-
+			
 			if (other_q) {
 				flush_video_queue(other_q, 1);
 
-				if ((status = switch_queue_trypop(other_q, &other_pop)) == SWITCH_STATUS_SUCCESS) {
-					switch_img_free(&other_img);
+				if ((status = switch_queue_pop(other_q, &other_pop)) == SWITCH_STATUS_SUCCESS) {
 					if (!(other_img = (switch_image_t *) other_pop)) {
 						goto end;
 					}
@@ -621,6 +619,7 @@ static void *SWITCH_THREAD_FUNC video_bug_thread(switch_thread_t *thread, void *
 
 				if (other_img) {
 					switch_img_patch(IMG, other_img, w / 2, 0);
+					switch_img_free(&other_img);
 				}
 			}
 
@@ -634,6 +633,7 @@ static void *SWITCH_THREAD_FUNC video_bug_thread(switch_thread_t *thread, void *
 				}
 			}
 			bug->video_ping_frame = NULL;
+			switch_img_free(&img);
 			switch_thread_rwlock_unlock(bug->session->bug_rwlock);
 
 			if (!ok) {