Index: trunk/Ohana/src/opihi/cmd.astro/fitplx_irls.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/fitplx_irls.c	(revision 39167)
+++ trunk/Ohana/src/opihi/cmd.astro/fitplx_irls.c	(revision 39168)
@@ -359,6 +359,6 @@
   sigma_ols = 0.0;
   for (i = 0; i < Npts; i++) {
-    rx[i] = X[i] - (T[i] * B[0][0] + B[1][0] + B[4][0] * pR[i]);
-    ry[i] = Y[i] - (T[i] * B[2][0] + B[3][0] + B[4][0] * pD[i]);
+    rx[i] = X[i] - (T[i] * B[1][0] + B[0][0] + B[4][0] * pR[i]);
+    ry[i] = Y[i] - (T[i] * B[3][0] + B[2][0] + B[4][0] * pD[i]);
     //    u[i] = r[i] /
     sigma_ols += SQ(rx[i]) + SQ(ry[i]);
@@ -383,4 +383,10 @@
   iterations = 0;
   do {
+    if (VERBOSE == 2) {
+      fprintf(stderr,"Iteration: %d (%f %f %f %f %f) sigmas: %f %f\n",
+	      iterations,
+	      Beta[0],Beta[1],Beta[2],Beta[3],Beta[4],
+	      sigma_ols, sigma_hat);
+    }
     // Save Beta
     for (i = 0; i < 5; i++) {
@@ -408,6 +414,6 @@
     // Calculate r vector of residuals
     for (i = 0; i < Npts; i++) {
-      rx[i] = X[i] - (T[i] * B[0][0] + B[1][0] + B[4][0] * pR[i]);
-      ry[i] = Y[i] - (T[i] * B[2][0] + B[3][0] + B[4][0] * pD[i]);
+      rx[i] = X[i] - (T[i] * B[1][0] + B[0][0] + B[4][0] * pR[i]);
+      ry[i] = Y[i] - (T[i] * B[3][0] + B[2][0] + B[4][0] * pD[i]);
       IRLS_u[i] = sqrt(SQ(rx[i] / dX[i]) + SQ(ry[i] / dY[i]));
     }
@@ -426,5 +432,5 @@
 
     iterations++;
-    if (iterations > max_iterations) {
+    if (iterations >= max_iterations) {
       converged = TRUE;
       // Throw a warning or something here.
Index: trunk/Ohana/src/opihi/cmd.astro/fitpm_irls.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/fitpm_irls.c	(revision 39167)
+++ trunk/Ohana/src/opihi/cmd.astro/fitpm_irls.c	(revision 39168)
@@ -231,6 +231,6 @@
   sigma_ols = 0.0;
   for (i = 0; i < Npts; i++) {
-    rx[i] = X[i] - (T[i] * B[0][0] + B[1][0]);
-    ry[i] = Y[i] - (T[i] * B[2][0] + B[3][0]);
+    rx[i] = X[i] - (T[i] * B[1][0] + B[0][0]);
+    ry[i] = Y[i] - (T[i] * B[3][0] + B[2][0]);
     //    u[i] = r[i] /
     sigma_ols += SQ(rx[i]) + SQ(ry[i]);
@@ -280,6 +280,6 @@
     sigma_hat = 0.0;
     for (i = 0; i < Npts; i++) {
-      rx[i] = X[i] - (T[i] * B[0][0] + B[1][0]);
-      ry[i] = Y[i] - (T[i] * B[2][0] + B[3][0]);
+      rx[i] = X[i] - (T[i] * B[1][0] + B[0][0]);
+      ry[i] = Y[i] - (T[i] * B[3][0] + B[2][0]);
       u[i] = sqrt(SQ(rx[i] / dX[i]) + SQ(ry[i] / dY[i]));
     }
