Index: /branches/eam_branches/ipp-20101205/psphot/src/psphotChoosePSF.c
===================================================================
--- /branches/eam_branches/ipp-20101205/psphot/src/psphotChoosePSF.c	(revision 30096)
+++ /branches/eam_branches/ipp-20101205/psphot/src/psphotChoosePSF.c	(revision 30097)
@@ -482,5 +482,5 @@
     if (!psVectorStats (stats, fwhmMajor, NULL, NULL, 0)) {
         psError(PS_ERR_UNKNOWN, false, "failure to measure stats for FWHM MAJOR");
-        return false;
+	goto escape;
     }
 
@@ -494,5 +494,5 @@
     if (!psVectorStats (stats, fwhmMinor, NULL, NULL, 0)) {
         psError(PS_ERR_UNKNOWN, false, "failure to measure stats for FWHM MINOR");
-        return false;
+	goto escape;
     }
     psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "FWHM_MIN",   PS_META_REPLACE, "PSF FWHM Minor axis (mean)", stats->sampleMean);
@@ -512,5 +512,5 @@
       if (!psVectorStats (stats, psfExtra1, NULL, NULL, 0)) {
         psError(PS_ERR_UNKNOWN, false, "failure to measure stats for PSF EXTRA 1");
-        return false;
+	goto escape;
       }
       psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "PSF_EXT1", PS_META_REPLACE, "PSF extra param 1", stats->sampleMean);
@@ -520,5 +520,5 @@
       if (!psVectorStats (stats, psfExtra2, NULL, NULL, 0)) {
         psError(PS_ERR_UNKNOWN, false, "failure to measure stats for PSF EXTRA 2");
-        return false;
+	goto escape;
       }
       psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "PSF_EXT2", PS_META_REPLACE, "PSF extra param 2", stats->sampleMean);
@@ -537,6 +537,16 @@
     psFree (fwhmMajor);
     psFree (fwhmMinor);
+    psFree (psfExtra1);
+    psFree (psfExtra2);
     psFree (stats);
     return true;
+
+escape:
+    psFree (fwhmMajor);
+    psFree (fwhmMinor);
+    psFree (psfExtra1);
+    psFree (psfExtra2);
+    psFree (stats);
+    return false;
 }
 
