diff --git a/src/ephemeris.c b/src/ephemeris.c
index d7e722a09d72be22637d57f78802155f6b2f5f32..40fe7541d21989bef74c343cd210c94148fb696a 100644
--- a/src/ephemeris.c
+++ b/src/ephemeris.c
@@ -412,14 +412,14 @@ static eph_t *seleph(gtime_t time, int sat, int iode, const nav_t *nav)
         default: tmax=MAXDTOE+1.0; break;
     }
     tmin=tmax+1.0;
-    
+
+    if (iode != -1)
+        printf("- available iode in eph: ");
     for (i=0;i<nav->n;i++) {
         if (nav->eph[i].sat!=sat) continue;
-        if (iode>=0&&nav->eph[i].iode!=iode){
-            printf("seleph: existent eph of sat =%2d but different iode=%3d (searching %3d)\n",
-                  sat,nav->eph[i].iode, iode);
-            continue;
-        }
+        if (iode != -1)
+            printf("%3d ",nav->eph[i].iode);
+        if (iode>=0&&nav->eph[i].iode!=iode) continue;
         if (sys==SYS_GAL&&sel) {
             if (sel==1&&!(nav->eph[i].code&(1<<9))) continue; /* I/NAV */
             if (sel==2&&!(nav->eph[i].code&(1<<8))) continue; /* F/NAV */
@@ -431,8 +431,6 @@ static eph_t *seleph(gtime_t time, int sat, int iode, const nav_t *nav)
     if (iode>=0||j<0) {
         trace(3,"no broadcast ephemeris: %s sat=%2d iode=%3d\n",time_str(time,0),
               sat,iode);
-        if (iode >= 0)
-            printf("seleph: no broadcast ephemeris: %s sat=%2d iode=%3d\n",time_str(time,0),sat,iode);
         return NULL;
     }
     return nav->eph+j;
@@ -559,17 +557,17 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav,
     const sbssatp_t *sbs;
     int i;
 
-    trace(4,"satpos_sbas: time=%s sat=%2d\n",time_str(time,3),sat);
-    printf("satpos_sbas: sat=%2d\n",sat);
+    trace(4,"satpos_sbas: time=%s sat=%3d\n",time_str(time,3),sat);
+    printf("satpos_sbas: sat=%3d ",sat);
     
     /* search sbas satellite correciton */
     for (i=0;i<nav->sbssat.nsat;i++) {
         sbs=nav->sbssat.sat+i;
         if (sbs->sat==sat) break;
     }
-    if (i>=nav->sbssat.nsat) {
-        trace(2,"no sbas correction for orbit: %s sat=%2d\n",time_str(time,0),sat);
-        printf("satpos_sbas: no sbas correction (i>=nav->sbssat.nsat) for sat=%2d\n",sat);
+    if (i>=nav->sbssat.nsat || sbs->lcorr.iode < 0) {
+        trace(2,"no sbas correction for orbit: %s sat=%3d\n",time_str(time,0),sat);
+        printf("no sbas correction (i>=nav->sbssat.nsat || sbs->lcorr.iode < 0)\n",sat);
         if (ephpos(time,teph,sat,nav,-1,rs,dts,var,svh))
             *svh=-2;// JV: error code for detecting available ephemeris without sbas correction
         else
@@ -580,14 +578,18 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav,
         return 0;
     }
     /* satellite postion and clock by broadcast ephemeris */
+    printf("lcorr.iode=%3d ",sbs->lcorr.iode);
     if (!ephpos(time,teph,sat,nav,sbs->lcorr.iode,rs,dts,var,svh)){
-        printf("satpos_sbas: no broadcast eph for sat %2d at sbs->lcorr.iode %2d\n",sat,sbs->lcorr.iode);
+        printf("not found\n");
         return 0;
     }
     
     /* sbas satellite correction (long term and fast) */
-    if (sbssatcorr(time,sat,nav,rs,dts,var)) return 1;
-    printf("satpos_sbas: no sbas correction (!sbssatcorr()) for sat=%2d\n",sat);
+    if (sbssatcorr(time,sat,nav,rs,dts,var)){
+        printf("OK!\n");
+        return 1;
+    }
+    printf("no sbas correction (!sbssatcorr())\n");
     *svh=-1;
     return 0;
 }
diff --git a/src/pntpos.c b/src/pntpos.c
index db7843f135711fb9febfe9f9a1b37b00ce26c355..5db921749dca3accf3e440385873190e72afe0b4 100644
--- a/src/pntpos.c
+++ b/src/pntpos.c
@@ -343,6 +343,20 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs,
         for (j=0;j<NX;j++) H[j+nv*NX]=j==i+3?1.0:0.0;
         var[nv++]=0.01;
     }
+    // DEBUGGING ================
+    /*{
+        printf("H:\n");
+        for (int row = 0; row < nv; row++)
+            printf("\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n", H[row*NX],
+                                                     H[row*NX+1],
+                                                     H[row*NX+2],
+                                                     H[row*NX+3],
+                                                     H[row*NX+4],
+                                                     H[row*NX+5],
+                                                     H[row*NX+6]);
+        printf("\n");
+
+    }//*/
     return nv;
 }
 /* validate solution ---------------------------------------------------------*/
@@ -398,7 +412,8 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts,
                    &ns);
         
         if (nv<NX) {
-            sprintf(msg,"lack of valid sats ns=%d",nv);
+            //sprintf(msg,"lack of valid sats ns=%d",nv);
+            sprintf(msg,"lack of valid sats ns=%d, nv=%2d",ns, nv);//JV
             break;
         }
         /* weight by variance */
@@ -410,7 +425,6 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts,
         /* least square estimation */
         if ((info=lsq(H,v,NX,nv,dx,Q))) {
             sprintf(msg,"lsq error info=%d",info);
-            break;
         }
         for (j=0;j<NX;j++) x[j]+=dx[j];
         
diff --git a/src/sbas.c b/src/sbas.c
index 812d8ec0f69b3ee6a702af8771b3e50f87a3fad8..f0aedaef9681f9d5260466d06814e9436cf40313 100644
--- a/src/sbas.c
+++ b/src/sbas.c
@@ -126,7 +126,7 @@ static double degfcorr(int ai)
 /* print sbsfcorr_t (JV) -------------------------------------------------------*/
 static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr)
 {
-    printf("\t\tiodf: %d, udre: %d, [%f, %f, %f, %d]\n",
+    printf("iodf: %d, udre: %d, [%f, %f, %f, %d]\n",
            sbsfcorr->iodf,
            sbsfcorr->udre,
            sbsfcorr->prc,
@@ -137,7 +137,7 @@ static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr)
 /* print sbslcorr_t (JV) -------------------------------------------------------*/
 static void print_sbslcorr(const sbslcorr_t *sbslcorr)
 {
-    printf("\t\tiode: %d, [[%f, %f, %f], [%f, %f, %f], %f, %f]\n",
+    printf("iode: %d, dpos=[%f, %f, %f], dvel=[%f, %f, %f], daf=[%f, %f]\n",
            sbslcorr->iode,
            sbslcorr->dpos[0],sbslcorr->dpos[1],sbslcorr->dpos[2],
            sbslcorr->dvel[0],sbslcorr->dvel[1],sbslcorr->dvel[2],
@@ -147,9 +147,9 @@ static void print_sbslcorr(const sbslcorr_t *sbslcorr)
 static void print_sbssatp(const sbssatp_t *sbssatp)
 {
     printf("\tsat: %d\n", sbssatp->sat); /* satellite number */
-    printf("\tfcorr:\n");
+    printf("\t\tfcorr:\t");
     print_sbsfcorr(&sbssatp->fcorr);/* fast correction */
-    printf("\tlcorr:\n");
+    printf("\t\tlcorr:\t");
     print_sbslcorr(&sbssatp->lcorr);/* long term correction */
 }
 /* print sbssat_t (JV) -------------------------------------------------------*/