diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index 1ac905021105f4e2e26030ce080bc2098ac3f0dc..dc6feb98090ca01845c2718748d343e68fe55129 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -990,6 +990,8 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
         {
             // Update the buffer level variable.
             cpi->bits_off_target += cpi->av_per_frame_bandwidth;
+            if (cpi->bits_off_target > cpi->oxcf.maximum_buffer_size)
+              cpi->bits_off_target = cpi->oxcf.maximum_buffer_size;
             cpi->buffer_level = cpi->bits_off_target;
         }
         else