Index: /tags/ipp-20120216/psModules/src/extras/psVectorBracket.c
===================================================================
--- /tags/ipp-20120216/psModules/src/extras/psVectorBracket.c	(revision 33436)
+++ /tags/ipp-20120216/psModules/src/extras/psVectorBracket.c	(revision 33437)
@@ -51,6 +51,6 @@
         }
     }
-    // at this point, index[Nhi] >= key > index[Nlo]
-    N = Nhi;
+    N = (Nhi >= index->n) ? Nhi - 1 : Nhi;
+    // at this point, index[N] >= key > index[Nlo]
     while ((index->data.F32[N] >= key) && (N > Nlo)) {
         N--;
Index: /tags/ipp-20120216/psModules/src/imcombine/pmSubtractionStamps.c
===================================================================
--- /tags/ipp-20120216/psModules/src/imcombine/pmSubtractionStamps.c	(revision 33436)
+++ /tags/ipp-20120216/psModules/src/imcombine/pmSubtractionStamps.c	(revision 33437)
@@ -1208,5 +1208,13 @@
 	// XXX this is somewhat arbitrary...
 	if (source->psfMagErr > 0.05) continue;
-	if (fabs(source->psfMag - source->apMag) > 0.5) continue;
+        if (isfinite(source->apMag)) {
+            if (fabs(source->psfMag - source->apMag) > 0.5) continue;
+        } else if (isfinite(source->apMagRaw)) {
+            if (fabs(source->psfMag - source->apMagRaw) > 0.5) continue;
+        } else {
+            // XXX: Should we carry on or drop this source?
+            // drop it for now
+            continue;
+        }
 
         if (source->modelPSF) {
