Index: trunk/psModules/src/camera/pmFPACopy.c
===================================================================
--- trunk/psModules/src/camera/pmFPACopy.c	(revision 41496)
+++ trunk/psModules/src/camera/pmFPACopy.c	(revision 41524)
@@ -504,25 +504,17 @@
 
     // Update the astrometric parameters
-    target->toFPA = psMemIncrRefCounter (source->toFPA);
-    target->fromFPA = psMemIncrRefCounter (source->fromFPA);
+    // free any previous versions
+    psFree (target->toFPA);   target->toFPA   = psMemIncrRefCounter (source->toFPA);
+    psFree (target->fromFPA); target->fromFPA = psMemIncrRefCounter (source->fromFPA);
 
     // Update the parent fpa astrometry parameters, or check that they match
     pmFPA *targetFPA = target->parent;
     pmFPA *sourceFPA = source->parent;
+
     // XXX should we require that both of these exist?
-
     if (targetFPA && sourceFPA) {
-        if (targetFPA->toSky) {
-            psFree(targetFPA->toSky);
-        }
-        targetFPA->toSky = psMemIncrRefCounter (sourceFPA->toSky);
-        if (targetFPA->toTPA) {
-            psFree(targetFPA->toTPA);
-        }
-        targetFPA->toTPA = psMemIncrRefCounter (sourceFPA->toTPA);
-        if (targetFPA->fromTPA) {
-            psFree(targetFPA->fromTPA);
-        }
-        targetFPA->fromTPA = psMemIncrRefCounter (sourceFPA->fromTPA);
+	psFree(targetFPA->toSky);   targetFPA->toSky = psMemIncrRefCounter (sourceFPA->toSky);
+	psFree(targetFPA->toTPA);   targetFPA->toTPA = psMemIncrRefCounter (sourceFPA->toTPA);
+	psFree(targetFPA->fromTPA); targetFPA->fromTPA = psMemIncrRefCounter (sourceFPA->fromTPA);
     }
 
