diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 1d9f80d3204f107eb185c211a6ab5506a249fa8d..85978811de135ab56fac72f4483916d3e4016c23 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -452,15 +452,15 @@ static uint8_t *avc_find_startcode( uint8_t *p, uint8_t *end )
         if( (x - 0x01010101) & (~x) & 0x80808080 ) { // generic
             if( p[1] == 0 ) {
                 if( p[0] == 0 && p[2] == 1 )
-                    return p;
+                    return p-1;
                 if( p[2] == 0 && p[3] == 1 )
-                    return p+1;
+                    return p;
             }
             if( p[3] == 0 ) {
                 if( p[2] == 0 && p[4] == 1 )
-                    return p+2;
+                    return p+1;
                 if( p[4] == 0 && p[5] == 1 )
-                    return p+3;
+                    return p+2;
             }
         }
     }