diff -ru ffmpeg-0.4.9-pre1/libavcodec/mpeg12.c ffmpeg-0.4.9-pre1-sm/libavcodec/mpeg12.c
--- ffmpeg-0.4.9-pre1/libavcodec/mpeg12.c	Wed Jun 30 19:12:21 2004
+++ ffmpeg-0.4.9-pre1-sm/libavcodec/mpeg12.c	Mon Jan 24 23:45:27 2005
@@ -2769,12 +2769,14 @@
     MpegEncContext *s2 = &s->mpeg_enc_ctx;
     dprintf("fill_buffer\n");
 
-    /* special case for last picture */
-    if (buf_size == 0 && s2->low_delay==0 && s2->next_picture_ptr) {
-        *picture= *(AVFrame*)s2->next_picture_ptr;
-        s2->next_picture_ptr= NULL;
+    if (buf_size == 0) {
+	/* special case for last picture */
+	if (s2->low_delay==0 && s2->next_picture_ptr) {
+	    *picture= *(AVFrame*)s2->next_picture_ptr;
+	    s2->next_picture_ptr= NULL;
 
-        *data_size = sizeof(AVFrame);
+	    *data_size = sizeof(AVFrame);
+	}
         return 0;
     }
 
diff -ru ffmpeg-0.4.9-pre1/libavcodec/common.c ffmpeg-0.4.9-pre1-sm/libavcodec/common.c
--- ffmpeg-0.4.9-pre1/libavcodec/common.c	2004-03-12 15:39:38.000000000 -0800
+++ ffmpeg-0.4.9-pre1-sm/libavcodec/common.c	2006-02-05 19:10:01.000000000 -0800
@@ -54,7 +54,7 @@
 #endif
 }
 
-void put_string(PutBitContext * pbc, char *s, int put_zero)
+void ffmpeg_put_string(PutBitContext * pbc, char *s, int put_zero)
 {
     while(*s){
         put_bits(pbc, 8, *s);
diff -ru ffmpeg-0.4.9-pre1/libavcodec/common.h ffmpeg-0.4.9-pre1-sm/libavcodec/common.h
--- ffmpeg-0.4.9-pre1/libavcodec/common.h	2005-06-23 09:20:03.000000000 -0700
+++ ffmpeg-0.4.9-pre1-sm/libavcodec/common.h	2006-02-05 19:10:01.000000000 -0800
@@ -342,7 +342,7 @@
 }
 
 void align_put_bits(PutBitContext *s);
-void put_string(PutBitContext * pbc, char *s, int put_zero);
+void ffmpeg_put_string(PutBitContext * pbc, char *s, int put_zero);
 
 /* bit input */
 /* buffer, buffer_end and size_in_bits must be present and used by every reader */
diff -ru ffmpeg-0.4.9-pre1/libavcodec/h263.c ffmpeg-0.4.9-pre1-sm/libavcodec/h263.c
--- ffmpeg-0.4.9-pre1/libavcodec/h263.c	2004-06-25 07:11:44.000000000 -0700
+++ ffmpeg-0.4.9-pre1-sm/libavcodec/h263.c	2006-02-05 19:10:01.000000000 -0800
@@ -2273,7 +2273,7 @@
     if(!(s->flags & CODEC_FLAG_BITEXACT)){
         put_bits(&s->pb, 16, 0);
         put_bits(&s->pb, 16, 0x1B2);	/* user_data */
-	put_string(&s->pb, LIBAVCODEC_IDENT, 0);
+	ffmpeg_put_string(&s->pb, LIBAVCODEC_IDENT, 0);
     }
 }
 
diff -ru ffmpeg-0.4.9-pre1/libavcodec/mjpeg.c ffmpeg-0.4.9-pre1-sm/libavcodec/mjpeg.c
--- ffmpeg-0.4.9-pre1/libavcodec/mjpeg.c	2004-05-21 07:37:16.000000000 -0700
+++ ffmpeg-0.4.9-pre1-sm/libavcodec/mjpeg.c	2006-02-05 19:10:01.000000000 -0800
@@ -378,7 +378,7 @@
     /* JFIF header */
     put_marker(p, APP0);
     put_bits(p, 16, 16);
-    put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */
+    ffmpeg_put_string(p, "JFIF", 1); /* this puts the trailing zero-byte too */
     put_bits(p, 16, 0x0201); /* v 1.02 */
     put_bits(p, 8, 0); /* units type: 0 - aspect ratio */
     put_bits(p, 16, s->avctx->sample_aspect_ratio.num);
@@ -393,7 +393,7 @@
         flush_put_bits(p);
         ptr = pbBufPtr(p);
         put_bits(p, 16, 0); /* patched later */
-        put_string(p, LIBAVCODEC_IDENT, 1);
+        ffmpeg_put_string(p, LIBAVCODEC_IDENT, 1);
         size = strlen(LIBAVCODEC_IDENT)+3;
         ptr[0] = size >> 8;
         ptr[1] = size;
