Index: trunk/psLib/src/jpeg/psImageJpeg.c
===================================================================
--- trunk/psLib/src/jpeg/psImageJpeg.c	(revision 29929)
+++ trunk/psLib/src/jpeg/psImageJpeg.c	(revision 29930)
@@ -167,5 +167,8 @@
   int dy = image->numRows;
   
-  bDrawBuffer *bdbuf = bDrawBufferCreate(dx, dy);
+  int Npalette;
+  png_color *palette = KapaPNGPalette (&Npalette);
+
+  bDrawBuffer *bdbuf = bDrawBufferCreate(dx, dy, 1, palette, Npalette);
 
   return bdbuf;
@@ -180,6 +183,5 @@
   int dy = bdbuf->Ny;
 
-  int Npalette;
-  png_color *palette = KapaPNGPalette (&Npalette);
+  png_color *palette = bdbuf->palette;
   bDrawColor white = KapaColorByName ("white");
   for (int j = 0; j < dy; j++) {
@@ -336,15 +338,18 @@
 
     // set the scalebar labels
+    int Npalette;
+    png_color *palette = KapaPNGPalette (&Npalette);
+
     char string[64];
-    bDrawBuffer *labels = bDrawBufferCreate(dx, PS_JPEG_LABELPAD);
+    bDrawBuffer *labels = bDrawBufferCreate(dx, PS_JPEG_LABELPAD, 1, palette, Npalette);
     SetRotFont ("helvetica", 8);
-    bDrawSetBuffer(labels);
     sprint_double (string, options->min);
-    bDrawRotText(2, 2, string, 2, 0.0);
+    bDrawRotText(labels, 2, 2, string, 2, 0.0);
     sprint_double (string, options->max);
-    bDrawRotText(dx - 2, 2, string, 0, 0.0);
+    bDrawRotText(labels, dx - 2, 2, string, 0, 0.0);
     sprint_double (string, 0.5*(options->min + options->max));
-    bDrawRotText(0.5*dx, 2, string, 1, 0.0);
+    bDrawRotText(labels, 0.5*dx, 2, string, 1, 0.0);
     psImageJpegOverlayDraw(jpegImage, labels, 0, offset);
+    bDrawBufferFree(labels);
   }
     
