Index: trunk/psModules/src/camera/pmFPA.c
===================================================================
--- trunk/psModules/src/camera/pmFPA.c	(revision 14933)
+++ trunk/psModules/src/camera/pmFPA.c	(revision 15973)
@@ -271,8 +271,14 @@
 }
 
+bool psMemCheckReadout(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) readoutFree);
+}
+
+
 pmCell *pmCellAlloc(
     pmChip *chip,
-    const char *name
-)
+    const char *name)
 {
     pmCell *tmpCell = (pmCell *) psAlloc(sizeof(pmCell));
@@ -301,4 +307,11 @@
 }
 
+bool psMemCheckCell(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) cellFree);
+}
+
+
 pmChip *pmChipAlloc(
     pmFPA *fpa,
@@ -334,4 +347,10 @@
 }
 
+bool psMemCheckChip(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) chipFree);
+}
+
 pmFPA *pmFPAAlloc(const psMetadata *camera)
 {
@@ -347,5 +366,5 @@
 
     tmpFPA->analysis = psMetadataAlloc();
-    tmpFPA->camera = psMemIncrRefCounter((psPtr)camera);
+    tmpFPA->camera = psMemIncrRefCounter((psPtr) camera);
     tmpFPA->chips = psArrayAlloc(0);
     tmpFPA->hdu = NULL;
@@ -357,4 +376,11 @@
     return tmpFPA;
 }
+
+bool psMemCheckFPA(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) FPAFree);
+}
+
 
 // Check a cell to ensure that all component readouts have the parent pointer set correctly
@@ -402,5 +428,5 @@
 psBool pmFPACheckParents(pmFPA *fpa)
 {
-    PS_ASSERT_PTR_NON_NULL(fpa, true);
+    PS_ASSERT_PTR_NON_NULL(fpa, false);
 
     bool flag = true;
