diff --git a/src/modules/image/matrix.c b/src/modules/image/matrix.c
index a3bfc3655042986f451de500b79f8f5d709b2c90..3c442ac7c3c6efe7aca7e17ced1e761232e04a29 100644
--- a/src/modules/image/matrix.c
+++ b/src/modules/image/matrix.c
@@ -1,4 +1,4 @@
-/* $Id: matrix.c,v 1.6 1996/12/01 00:01:15 law Exp $ */
+/* $Id: matrix.c,v 1.7 1996/12/03 22:40:46 law Exp $ */
 
 #include "global.h"
 
@@ -188,7 +188,7 @@ CHRONO("scale begin");
    }
 
    dest->img=d=malloc(newx*newy*sizeof(rgb_group) +1);
-   if (!d) error("Out of memory!\n");
+   if (!d) { free(new); error("Out of memory!\n"); }
 
 CHRONO("transfer begin");
 
@@ -205,6 +205,8 @@ CHRONO("transfer begin");
    dest->xsize=newx;
    dest->ysize=newy;
 
+   free(new);
+
 CHRONO("scale end");
 }