Index: trunk/Ohana/src/libfits/header/F_copy_H.c
===================================================================
--- trunk/Ohana/src/libfits/header/F_copy_H.c	(revision 16995)
+++ trunk/Ohana/src/libfits/header/F_copy_H.c	(revision 17903)
@@ -23,4 +23,5 @@
   out[0].bscale = in[0].bscale;
 
+  if (out[0].buffer != NULL) free (out[0].buffer);
   ALLOCATE (out[0].buffer, char, out[0].size);
   
Index: trunk/Ohana/src/libfits/matrix/F_copy_M.c
===================================================================
--- trunk/Ohana/src/libfits/matrix/F_copy_M.c	(revision 16995)
+++ trunk/Ohana/src/libfits/matrix/F_copy_M.c	(revision 17903)
@@ -16,4 +16,5 @@
     matrix2[0].Naxis[i] = matrix1[0].Naxis[i];
 
+  if (matrix2[0].buffer != NULL) free (matrix2[0].buffer);
   ALLOCATE (matrix2[0].buffer, char, matrix2[0].size);
   
Index: trunk/Ohana/src/libfits/matrix/F_create_M.c
===================================================================
--- trunk/Ohana/src/libfits/matrix/F_create_M.c	(revision 16995)
+++ trunk/Ohana/src/libfits/matrix/F_create_M.c	(revision 17903)
@@ -27,2 +27,3 @@
 }
 
+// XXX free buffer if non-null: need to double check for existing frees
