diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C
index 70098ca..36342e5 100644
--- a/cinelerra-5.1/cinelerra/ffmpeg.C
+++ b/cinelerra-5.1/cinelerra/ffmpeg.C
@@ -1192,10 +1192,16 @@ int FFVideoStream::video_seek(int64_t pos)
 	if( pos == curr_pos-1 && !seeked ) return 0;
 // if close enough, just read up to current
 	int gop = avctx->gop_size;
-	if( gop < 4 ) gop = 4;
+	if( gop < 4 && gop != 0) gop = 4;
 	if( gop > 64 ) gop = 64;
+	if( gop == 0 ) gop = 1;
+	//fprintf(stderr, "GOP: %i \n", gop);
 	int read_limit = curr_pos + 3*gop;
 	if( pos >= curr_pos && pos <= read_limit ) return 0;
+	if (st->codecpar->codec_tag == 1685288548) {
+	gop = 1;
+	if( seek(pos - 2*gop, frame_rate) < 0 ) return -1;
+	}
 // guarentee preload more than 2*gop frames
 	if( seek(pos - 3*gop, frame_rate) < 0 ) return -1;
 	return 1;
