diff --git a/libcelt/rangeenc.c b/libcelt/rangeenc.c
index 53536060d3331810a2d6397b8f0591cdad327881..374ea160e9bae278a55d06296876f81b33c2456b 100644
--- a/libcelt/rangeenc.c
+++ b/libcelt/rangeenc.c
@@ -138,7 +138,7 @@ void ec_enc_done(ec_enc *_this){
     }
   }
   /*If we have a buffered byte flush it into the output buffer.*/
-  if(_this->rem>=0){
+  if(_this->rem>=0||_this->ext>0){
     ec_enc_carry_out(_this,0);
     _this->rem=-1;
   }