diff --git a/puremd_rc_1003/sPuReMD/GMRES.c b/puremd_rc_1003/sPuReMD/GMRES.c
index 8488ac69ff5a0180314ab28eb3513347824a9f53..3a2d56b597aebf4c8bf58da23ae8e4fd38226d5b 100644
--- a/puremd_rc_1003/sPuReMD/GMRES.c
+++ b/puremd_rc_1003/sPuReMD/GMRES.c
@@ -56,7 +56,7 @@ static void Sparse_MatVec( const sparse_matrix * const A,
     }
 
     // the diagonal entry is the last one in
-    b[i] += A->entries[A->start[i+1]-1].val * x[i]; 
+    b[i] += A->entries[k].val * x[i]; 
   }
 }
 
diff --git a/puremd_rc_1003/sPuReMD/analyze.c b/puremd_rc_1003/sPuReMD/analyze.c
index ac5cfe3054aa500a9a0dc80354626cdd84cad8a9..ee3c59f92ff8e550a17bd6e7576f31af56785cd0 100644
--- a/puremd_rc_1003/sPuReMD/analyze.c
+++ b/puremd_rc_1003/sPuReMD/analyze.c
@@ -723,13 +723,13 @@ void Calculate_Drift( reax_system *system, control_params *control,
 			    &(system->box), driftvec );
 
 	if( fabs( driftvec[0] ) >= system->box.box_norms[0] / 2.0 - 2.0 || 
-	    fabs( driftvec[0] ) >= system->box.box_norms[0] / 2.0 - 2.0 || 
-	    fabs( driftvec[0] ) >= system->box.box_norms[0] / 2.0 - 2.0 ) {
+	    fabs( driftvec[1] ) >= system->box.box_norms[1] / 2.0 - 2.0 || 
+	    fabs( driftvec[2] ) >= system->box.box_norms[2] / 2.0 - 2.0 ) {
 	  /* the atom has moved almost half the box size. 
 	     exclude it from further drift computations as it might have an 
 	     improper contribution due to periodic boudnaries. */
 	  workspace->x_old[i][0] = -999999999999.0;
-          workspace->x_old[i][2] = -999999999999.0;
+          workspace->x_old[i][1] = -999999999999.0;
 	  workspace->x_old[i][2] = -999999999999.0;
 	  continue;
 	}
diff --git a/puremd_rc_1003/sPuReMD/param.c b/puremd_rc_1003/sPuReMD/param.c
index 045e97bc7e5f020d86eb311ef8a0184ea9f14122..e81f03439581a8447f541bdcab46fa6c8a6ca46b 100644
--- a/puremd_rc_1003/sPuReMD/param.c
+++ b/puremd_rc_1003/sPuReMD/param.c
@@ -880,7 +880,6 @@ char Read_Control_File( FILE* fp, reax_system *system, control_params* control,
     tmp[i] = (char*) malloc(sizeof(char)*MAX_LINE);
 
   /* read control parameters file */
-//  while (!feof(fp)) {
   while(fgets(s,MAX_LINE,fp))
   {
     c=Tokenize(s,&tmp);