Index: /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 17328)
+++ /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 17329)
@@ -158,15 +158,14 @@
 
 	/*Assign output pointer*/
-	if(index>=0){
+	if(nobs || hmin==radius){
 		observation=dynamic_cast<Observation*>(this->GetObjectByOffset(index));
-		*px=observation->x;
-		*py=observation->y;
-		*pobs=observation->value;
+		*px   = observation->x;
+		*py   = observation->y;
+		*pobs = observation->value;
 	}
 	else{
-
-		*px=UNDEF;
-		*py=UNDEF;
-		*pobs=UNDEF;
+		*px   = UNDEF;
+		*py   = UNDEF;
+		*pobs = UNDEF;
 	}
 	xDelete<int>(indices);
@@ -180,8 +179,10 @@
 	for(int i=0;i<n;i++){
 		this->ClosestObservation(&xi,&yi,&obs,x[i],y[i],radius);
-		if(xi==UNDEF && yi==UNDEF)
+		if(xi==UNDEF && yi==UNDEF){
 		 distances[i]=UNDEF;
-		else
+		}
+		else{
 		 distances[i]=sqrt( (x[i]-xi)*(x[i]-xi) + (y[i]-yi)*(y[i]-yi) );
+		}
 	}
 }/*}}}*/
@@ -401,5 +402,5 @@
 	/*Solve the three linear systems*/
 #if _HAVE_GSL_
-	DenseGslTripleSolve(&GinvG0,&Ginv1,&GinvZ,Gamma,Gamma,ones,obs,n_obs);
+	DenseGslTripleSolve(&GinvG0,&Ginv1,&GinvZ,Gamma,gamma0,ones,obs,n_obs);
 	//DenseGslSolve(&GinvG0,Gamma,gamma0,n_obs); // Gamma^-1 gamma0
 	//DenseGslSolve(&Ginv1, Gamma,ones,n_obs);   // Gamma^-1 ones
