Index: /trunk/psModules/src/camera/pmFPAMosaic.c
===================================================================
--- /trunk/psModules/src/camera/pmFPAMosaic.c	(revision 12628)
+++ /trunk/psModules/src/camera/pmFPAMosaic.c	(revision 12629)
@@ -990,5 +990,5 @@
 // the mosaic image.
 
-bool pmChipMosaic(pmChip *target, const pmChip *source)
+bool pmChipMosaic(pmChip *target, const pmChip *source, bool deepCopy)
 {
     // Target exists, and has only a single cell
@@ -1012,5 +1012,5 @@
     psRegion *chipRegion = NULL;        // Region on the HDU that corresponds to the chip
     int xBin = 0, yBin = 0;             // Binning for the chip mosaic
-    if ((chipRegion = niceChip(&xBin, &yBin, source))) {
+    if (!deepCopy && (chipRegion = niceChip(&xBin, &yBin, source))) {
         // Case 1 --- we need only cut out the region
         psTrace("psModules.camera", 1, "Case 1 mosaicking: simple cut-out.\n");
@@ -1047,5 +1047,6 @@
             return false;
         }
-        chipRegion = psRegionAlloc(NAN, NAN, NAN, NAN); // We've cut and paste, so there's no valid trimsec
+        chipRegion = psRegionAlloc(0, 0, 0, 0); // We've cut and paste, so there's no valid trimsec
+	*chipRegion = psRegionForImage (mosaicImage, *chipRegion);
     }
     psTrace("psModules.camera", 1, "xBin,yBin: %d,%d\n", xBin, yBin);
@@ -1105,5 +1106,5 @@
 
 
-bool pmFPAMosaic(pmFPA *target, const pmFPA *source)
+bool pmFPAMosaic(pmFPA *target, const pmFPA *source, bool deepCopy)
 {
     // Target exists, and has only a single chip with single cell
@@ -1133,5 +1134,5 @@
     psRegion *fpaRegion = NULL;         // Region on the HDU that corresponds to the FPA
     int xBin = 0, yBin = 0;             // Binning for the FPA mosaic
-    if ((fpaRegion = niceFPA(&xBin, &yBin, source))) {
+    if (!deepCopy && (fpaRegion = niceFPA(&xBin, &yBin, source))) {
         // Case 1 --- we need only cut out the region
         psTrace("psModules.camera", 1, "Case 1 mosaicking: simple cut-out.\n");
Index: /trunk/psModules/src/camera/pmFPAMosaic.h
===================================================================
--- /trunk/psModules/src/camera/pmFPAMosaic.h	(revision 12628)
+++ /trunk/psModules/src/camera/pmFPAMosaic.h	(revision 12629)
@@ -4,6 +4,6 @@
  * @author Paul Price, IfA
  *
- * @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-01-24 02:54:14 $
+ * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2007-03-28 19:17:36 $
  * Copyright 2005-2006 Institute for Astronomy, University of Hawaii
  */
@@ -24,6 +24,7 @@
 /// the pixels, if possible.
 bool pmChipMosaic(pmChip *target,       ///< Target chip --- may contain only a single cell
-                  const pmChip *source  ///< Source chip whose cells will be mosaicked
-                 );
+                  const pmChip *source,  ///< Source chip whose cells will be mosaicked
+		  bool deepCopy		///< require a deep copy (disregard 'nice' chip) 
+    );
 
 /// Mosaic all cells within an FPA
@@ -33,7 +34,8 @@
 /// CELL.X0 and CELL.Y0 offsets.  This is useful for getting an image of the FPA on the sky.  The mosaicking
 /// is done so as to avoid performing a deep copy of the pixels, if possible.
-bool pmFPAMosaic(pmFPA *target,         ///< Target FPA --- may contain only a single chip with a single cell
-                 const pmFPA *source    ///< FPA whose chips and cells will be mosaicked
-                );
+bool pmFPAMosaic(pmFPA *target,	///< Target FPA --- may contain only a single chip with a single cell
+                 const pmFPA *source,	///< FPA whose chips and cells will be mosaicked
+                 bool deepCopy		///< require a deep copy (disregard 'nice' chip) 
+                );			// 
 /// @}
 #endif
