diff --git a/src/mhd/DirectInduction/mhd_iact.h b/src/mhd/DirectInduction/mhd_iact.h
index ea346242eeabf160abf60a08dab9f5d53f79eacb..8bf644daae61b4d030002d142c270d4ef4e067c3 100644
--- a/src/mhd/DirectInduction/mhd_iact.h
+++ b/src/mhd/DirectInduction/mhd_iact.h
@@ -654,24 +654,24 @@ __attribute__((always_inline)) INLINE static void runner_iact_mhd_force(
 
   const float dB_dt_pref_Lap_i = 2.0f * r_inv / rhoj;
   const float dB_dt_pref_Lap_j = 2.0f * r_inv / rhoi;
- 
-  float dB_dt_adv_i[3];
-  float dB_dt_adv_j[3];
+
+  float dB_dt_ind_i[3];
+  float dB_dt_ind_j[3];
   
   /* dv dot r. */
-  const float dvr = -(dv[0] * dx[0] + dv[1] * dx[1] + dv[2] * dx[2]);
+  const float dvr = (dv[0] * dx[0] + dv[1] * dx[1] + dv[2] * dx[2]);
 
   for (int i = 0; i < 3; i++) {
-  dB_dt_adv_i[i] =  rhoi*(Bj[i]/rhoj-Bi[i]/rhoi) * dvr;
-  dB_dt_adv_j[i] =  rhoj*(Bi[i]/rhoi-Bj[i]/rhoj) * dvr;
+  dB_dt_ind_i[i] = ( -Brj * dv[i] + dvr * Bj[i] ); 
+  dB_dt_ind_j[i] = ( -Bri * dv[i] + dvr * Bi[i] );
   }
  
   for (int i = 0; i < 3; i++) {
-    pi->mhd_data.Adv_B_source[i] += mj * dB_dt_pref_i * dB_dt_i[i];
-    pj->mhd_data.Adv_B_source[i] += mi * dB_dt_pref_j * dB_dt_j[i]; 
+    //pi->mhd_data.Adv_B_source[i] += mj * dB_dt_pref_i * dB_dt_i[i];
+    //pj->mhd_data.Adv_B_source[i] += mi * dB_dt_pref_j * dB_dt_j[i]; 
 
-    pi->mhd_data.Adv_B_source[i] -= mj * dB_dt_pref_i * dB_dt_adv_i[i];
-    pj->mhd_data.Adv_B_source[i] -= mi * dB_dt_pref_j * dB_dt_adv_j[i]; 
+    pi->mhd_data.Adv_B_source[i] += mj * dB_dt_pref_i * dB_dt_ind_i[i];
+    pj->mhd_data.Adv_B_source[i] += mi * dB_dt_pref_j * dB_dt_ind_j[i]; 
 
     pi->mhd_data.Adv_B_source[i] -= mj * grad_psi_i * dx[i];
     pj->mhd_data.Adv_B_source[i] -= mi * grad_psi_j * dx[i];
@@ -926,19 +926,19 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_mhd_force(
   /* Save induction sources */
   const float dB_dt_pref_Lap = 2.0f * r_inv / rhoj;
 
-  float dB_dt_adv_i[3];
+  float dB_dt_ind_i[3];
   
   /* dv dot r. */
-  const float dvr = -(dv[0] * dx[0] + dv[1] * dx[1] + dv[2] * dx[2]);
+  const float dvr = (dv[0] * dx[0] + dv[1] * dx[1] + dv[2] * dx[2]);
 
   for (int i = 0; i < 3; i++) {
-  dB_dt_adv_i[i] = rhoi*(Bj[i]/rhoj-Bi[i]/rhoi) * dvr;
+  dB_dt_ind_i[i] = ( -Brj * dv[i] + dvr * Bj[i] );
   }
  
   for (int i = 0; i < 3; i++) {
-    pi->mhd_data.Adv_B_source[i] += mj * dB_dt_pref_i * dB_dt_i[i];
+    //pi->mhd_data.Adv_B_source[i] += mj * dB_dt_pref_i * dB_dt_i[i];
 
-    pi->mhd_data.Adv_B_source[i] -= mj * dB_dt_pref_i * dB_dt_adv_i[i];
+    pi->mhd_data.Adv_B_source[i] += mj * dB_dt_pref_i * dB_dt_ind_i[i];
 
     pi->mhd_data.Adv_B_source[i] -= mj * grad_psi_i * dx[i];
     pi->mhd_data.Diff_B_source[i] += mj * dB_dt_pref_PR * wi_dr * dB[i];