diff --git a/src/THcDriftChamber.cxx b/src/THcDriftChamber.cxx
index 3c5bfae0a0a73e6b752657b81d66f74f1ac7ec17..7e66401b66981959460d8170c3b1c0141079f508 100644
--- a/src/THcDriftChamber.cxx
+++ b/src/THcDriftChamber.cxx
@@ -359,12 +359,14 @@ Int_t THcDriftChamber::FindHardSpacePoints()
   Combo combos[10*MAX_NUMBER_PAIRS];
   for(Int_t ipair1=0;ipair1<ntest_points-1;ipair1++) {
     for(Int_t ipair2=ipair1+1;ipair2<ntest_points;ipair2++) {
-      Double_t dist2 = pow(pairs[ipair1].x - pairs[ipair2].x,2)
-	+ pow(pairs[ipair1].y - pairs[ipair2].y,2);
-      if(dist2 <= fSpacePointCriterion2) {
-	combos[ncombos].pair1 = &pairs[ipair1];
-	combos[ncombos].pair2 = &pairs[ipair2];
-	ncombos++;
+      if(ncombos < 10*MAX_NUMBER_PAIRS) {
+	Double_t dist2 = pow(pairs[ipair1].x - pairs[ipair2].x,2)
+	  + pow(pairs[ipair1].y - pairs[ipair2].y,2);
+	if(dist2 <= fSpacePointCriterion2) {
+	  combos[ncombos].pair1 = &pairs[ipair1];
+	  combos[ncombos].pair2 = &pairs[ipair2];
+	  ncombos++;
+	}
       }
     }
   }
@@ -376,8 +378,8 @@ Int_t THcDriftChamber::FindHardSpacePoints()
     hits[2]=combos[icombo].pair2->hit1;
     hits[3]=combos[icombo].pair2->hit2;
     // Get Average Space point xt, yt
-    Double_t xt = combos[icombo].pair1->x + combos[icombo].pair2->x;
-    Double_t yt = combos[icombo].pair1->y + combos[icombo].pair2->y;
+    Double_t xt = (combos[icombo].pair1->x + combos[icombo].pair2->x)/2.0;
+    Double_t yt = (combos[icombo].pair1->y + combos[icombo].pair2->y)/2.0;
     // Loop over space points
     if(fNSpacePoints > 0) {
       Int_t add_flag=1;
@@ -419,8 +421,10 @@ Int_t THcDriftChamber::FindHardSpacePoints()
 	      if(iflag[icm]==0) {
 		fSpacePoints[ispace].hits[fSpacePoints[ispace].nhits++] = hits[icm];
 	      }
-	      fSpacePoints[ispace].ncombos++;
 	    }
+	    fSpacePoints[ispace].ncombos++;
+	    // Terminate loop since this combo can only belong to one space point
+	    break;
 	  }
 	}
       }// End of loop over existing space points