diff --git a/common/jpeg/jchuff.c b/common/jpeg/jchuff.c
index 94a66c5..23b29b8 100644
--- a/common/jpeg/jchuff.c
+++ b/common/jpeg/jchuff.c
@@ -311,6 +311,8 @@
 {
   struct jpeg_destination_mgr * dest = state->cinfo->dest;
 
+  dest->free_in_buffer = state->free_in_buffer;
+
   if (! (*dest->empty_output_buffer) (state->cinfo))
     return FALSE;
   /* After a successful buffer dump, must reset buffer pointers */
@@ -380,8 +382,10 @@
   unsigned char *buffer;
   int put_buffer, put_bits;
 
-  if ((state)->free_in_buffer < DCTSIZE2 * 2)
+  if ((state)->free_in_buffer < 1)
     if (! dump_buffer(state)) return FALSE;
+  if ((state)->free_in_buffer < 1)
+    ERREXIT(state->cinfo, JERR_BUFFER_SIZE);
 
   buffer = state->next_output_byte;
   put_buffer = state->cur.put_buffer;
@@ -394,9 +398,6 @@
   state->free_in_buffer -= (buffer - state->next_output_byte);
   state->next_output_byte = buffer;
 
-  if ((state)->free_in_buffer < DCTSIZE2 * 2) 
-    if (! dump_buffer(state)) return FALSE;
-
   return TRUE;
 }
 
@@ -415,6 +416,8 @@
 
   if ((state)->free_in_buffer < DCTSIZE2 * 2)
     if (! dump_buffer(state)) return FALSE;
+  if ((state)->free_in_buffer < DCTSIZE2 * 2)
+    ERREXIT(state->cinfo, JERR_BUFFER_SIZE);
 
   buffer = state->next_output_byte;
   put_buffer = state->cur.put_buffer;
@@ -474,9 +477,6 @@
   state->free_in_buffer -= (buffer - state->next_output_byte);
   state->next_output_byte = buffer;
 
-  if ((state)->free_in_buffer < DCTSIZE2 * 2)
-    if (! dump_buffer(state)) return FALSE;
-
   return TRUE;
 }
 
diff --git a/common/jpeg/jdatadst.c b/common/jpeg/jdatadst.c
index a8f6fb0..b874815 100644
--- a/common/jpeg/jdatadst.c
+++ b/common/jpeg/jdatadst.c
@@ -82,8 +82,9 @@
 {
   my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
 
-  if (JFWRITE(dest->outfile, dest->buffer, OUTPUT_BUF_SIZE) !=
-      (size_t) OUTPUT_BUF_SIZE)
+  if (JFWRITE(dest->outfile, dest->buffer, OUTPUT_BUF_SIZE
+      - dest->pub.free_in_buffer) !=
+      (size_t) (OUTPUT_BUF_SIZE - dest->pub.free_in_buffer))
     ERREXIT(cinfo, JERR_FILE_WRITE);
 
   dest->pub.next_output_byte = dest->buffer;
