Index: trunk/psModules/src/camera/pmFPAMosaic.c
===================================================================
--- trunk/psModules/src/camera/pmFPAMosaic.c	(revision 19073)
+++ trunk/psModules/src/camera/pmFPAMosaic.c	(revision 21183)
@@ -471,6 +471,4 @@
         numImages++;
 
-        // Only implemented for F32 and U8 images so far.
-        assert(image->type.type == PS_TYPE_F32 || image->type.type == PS_TYPE_U8);
         // All input types must be the same
         if (type == 0) {
@@ -537,6 +535,14 @@
         if (xBinSource->data.S32[i] == xBinTarget && yBinSource->data.S32[i] == yBinTarget) {
             switch (type) {
+                COPY_WITH_PARITY_DIFFERENCE(U8);
+                COPY_WITH_PARITY_DIFFERENCE(U16);
+                COPY_WITH_PARITY_DIFFERENCE(U32);
+                COPY_WITH_PARITY_DIFFERENCE(U64);
+                COPY_WITH_PARITY_DIFFERENCE(S8);
+                COPY_WITH_PARITY_DIFFERENCE(S16);
+                COPY_WITH_PARITY_DIFFERENCE(S32);
+                COPY_WITH_PARITY_DIFFERENCE(S64);
                 COPY_WITH_PARITY_DIFFERENCE(F32);
-                COPY_WITH_PARITY_DIFFERENCE(U8);
+                COPY_WITH_PARITY_DIFFERENCE(F64);
               default:
                 psAbort("Should never get here.\n");
@@ -548,6 +554,14 @@
         // We have to do all of the hard work ourselves
         switch (type) {
-            FILL_IN(F32);
-            FILL_IN(U8);
+	    FILL_IN(U8);
+	    FILL_IN(U16);
+	    FILL_IN(U32);
+	    FILL_IN(U64);
+	    FILL_IN(S8);
+	    FILL_IN(S16);
+	    FILL_IN(S32);
+	    FILL_IN(S64);
+	    FILL_IN(F32);
+	    FILL_IN(F64);
           default:
             psAbort("Should never get here.\n");
@@ -730,5 +744,5 @@
                        const pmChip *chip, // Chip to mosaic
                        const pmCell *targetCell, // Cell to which to mosaic
-                       psMaskType blank // Mask value to give blank pixels
+                       psImageMaskType blank // Mask value to give blank pixels
                       )
 {
@@ -838,5 +852,5 @@
                       const pmChip *targetChip, // Chip to which to mosaic
                       const pmCell *targetCell, // Cell to which to mosaic
-                      psMaskType blank  // Mask value to give blank pixels
+                      psImageMaskType blank  // Mask value to give blank pixels
                      )
 {
@@ -994,5 +1008,5 @@
 // the mosaic image.
 
-bool pmChipMosaic(pmChip *target, const pmChip *source, bool deepCopy, psMaskType blank)
+bool pmChipMosaic(pmChip *target, const pmChip *source, bool deepCopy, psImageMaskType blank)
 {
     // Target exists, and has only a single cell
@@ -1225,5 +1239,5 @@
 
 
-bool pmFPAMosaic(pmFPA *target, const pmFPA *source, bool deepCopy, psMaskType blank)
+bool pmFPAMosaic(pmFPA *target, const pmFPA *source, bool deepCopy, psImageMaskType blank)
 {
     // Target exists, and has only a single chip with single cell
