Index: trunk/psModules/src/camera/pmFPAConstruct.c
===================================================================
--- trunk/psModules/src/camera/pmFPAConstruct.c	(revision 41892)
+++ trunk/psModules/src/camera/pmFPAConstruct.c	(revision 42784)
@@ -52,4 +52,14 @@
 
 // Parse a list of first:second:third pairs in a string
+// EAM : this function takes an input 'string' and attempts to parse out
+// groups of the form FIRST:SECOND:THIRD into the arrays (first, second, third).
+
+// The input string may have multiple entries of this form separated by spaces, commas, or
+// semi-colons.  The number of arrays which are supplied must match the string format or
+// an error will be raised.
+
+// e.g., the string could be CHIP:CELL:TYPE in which case all three arrays must exist
+// or, the string could be CHIP:CELL only, in which case the array 'third' must be NULL
+ 
 static int parseContent(psArray **first, // Array of the first values
                          psArray **second, // Array of the second values
@@ -83,4 +93,8 @@
     while ((value = psListGetAndIncrement(valuesIter))) {
         psArray *fst = psStringSplitArray(value, ":", true); // First, second, third
+	if (fst->n != numArrays) {
+	  psError(PS_ERR_BAD_PARAMETER_VALUE, false, "string %s does not match expected format (%ld colon-separated items supplied, %d expected)", value, fst->n, numArrays);
+	  return 0;
+	}
         switch (numArrays) {
           case 3:
@@ -1126,5 +1140,5 @@
     pmFPAview *view = pmFPAviewAlloc(0); // View, to be returned
     if (phuView) {
-        // Copy the view, for the case where we're given a view.
+        // Copy the view values, for the case where we're given a view.
         *view = *phuView;
     }
