Index: libpipi/trunk/pipi/codec/oric.c
===================================================================
--- libpipi/trunk/pipi/codec/oric.c	(revision 2902)
+++ libpipi/trunk/pipi/codec/oric.c	(revision 2941)
@@ -51,12 +51,16 @@
     };
 
-    uint8_t screen[WIDTH * HEIGHT / 6];
     pipi_image_t *img;
     pipi_pixels_t *p;
-    uint8_t *data;
+    uint8_t *screen, *data;
     int x, y, i;
 
+    screen = malloc(WIDTH * HEIGHT / 6);
+
     if(read_screen(name, screen) < 0)
+    {
+        free(screen);
         return NULL;
+    }
 
     img = pipi_new(WIDTH, HEIGHT);
@@ -100,4 +104,6 @@
     }
 
+    free(screen);
+
     img->codec_priv = NULL;
 
@@ -110,8 +116,8 @@
 int pipi_save_oric(pipi_image_t *img, char const *name)
 {
-    uint8_t screen[WIDTH * HEIGHT / 6];
     pipi_image_t *tmp = NULL;
     pipi_pixels_t *p;
     float *data;
+    uint8_t *screen;
     FILE *fp;
     size_t len;
@@ -141,10 +147,16 @@
         p = pipi_getpixels(img, PIPI_PIXELS_RGBA_F);
     data = p->pixels;
+    screen = malloc(WIDTH * HEIGHT / 6);
     write_screen(data, screen);
     if(tmp)
+    {
+        free(screen);
         pipi_free(tmp);
+    }
 
     fwrite(screen, 1, WIDTH * HEIGHT / 6, fp);
     fclose(fp);
+
+    free(screen);
 
     return 0;
