diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
index 77488cd589f04275558f9ca4df1353f4646025ba..486f5670a2a8b1076bc1e27b5f7f5adc6442bf36 100644
--- a/libavcodec/error_resilience.c
+++ b/libavcodec/error_resilience.c
@@ -614,13 +614,13 @@ void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int en
             s->error_status_table[i] &= mask;
         }
     }
-
-    s->error_status_table[start_xy] |= VP_START;
-    
+   
     if(end_xy < s->mb_num){
         s->error_status_table[end_xy] &= mask;
         s->error_status_table[end_xy] |= status;
     }
+ 
+    s->error_status_table[start_xy] |= VP_START;
 }
 
 void ff_er_frame_end(MpegEncContext *s){
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 2b9443908b9018a85f5349bda0700dc85a9eb00f..c8a13a754238b83ac3eabf226cba66a47e408f2e 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -484,7 +484,7 @@ retry:
     avctx->has_b_frames= !s->low_delay;
 
     if(s->workaround_bugs&FF_BUG_AUTODETECT){
-        if(s->padding_bug_score > -2 && !s->data_partitioning)
+        if(s->padding_bug_score > -2 && !s->data_partitioning && !s->resync_marker)
             s->workaround_bugs |=  FF_BUG_NO_PADDING;
         else
             s->workaround_bugs &= ~FF_BUG_NO_PADDING;