diff --git a/src/modules/_Image_JPEG/image_jpeg.c b/src/modules/_Image_JPEG/image_jpeg.c
index 118b854abe2a6fed8d3820f6be4ddb0a7c20aba1..bb6d5e19ef10ac6a43686e9e409fc09b864ce420 100644
--- a/src/modules/_Image_JPEG/image_jpeg.c
+++ b/src/modules/_Image_JPEG/image_jpeg.c
@@ -97,14 +97,14 @@ boolean my_empty_output_buffer(struct jpeg_compress_struct *cinfo)
    int pos;
    char *new;
 
-   pos=dm->len-dm->pub.free_in_buffer;
-   new=realloc(dm->buf,dm->len+BUF_INCREMENT);
+   pos=dm->len; /* foo! dm->len-dm->pub.free_in_buffer; */
+   new=(char*)realloc(dm->buf,dm->len+BUF_INCREMENT);
    if (!new) return FALSE;
 
    dm->buf=new;
-   dm->pub.free_in_buffer+=BUF_INCREMENT;
    dm->len+=BUF_INCREMENT;
-   dm->pub.next_output_byte=new+pos;
+   dm->pub.free_in_buffer=dm->len-pos;
+   dm->pub.next_output_byte=(JOCTET*)new+pos;
 
    return TRUE;
 }