diff --git a/blast/api/mda_api.py b/blast/api/mda_api.py
index b69947c1856711356dbbd6198c5e076c2b816a15..55b5bab75c6aef584946eab2a82fb184c629215b 100644
--- a/blast/api/mda_api.py
+++ b/blast/api/mda_api.py
@@ -102,9 +102,6 @@ class BlasterSolver(om.ExplicitComponent):
         self.tms['adj'].start()
 
         print(ccolors.ANSI_BLUE, 'Computing derivatives in mode '+('viscous' if inputs['visc_mode'][0] else 'inviscid'), ccolors.ANSI_RESET)
-        
-        # Run inviscid adjoint solver
-        self.isol.iobj['adj'].run()
 
         dClaoa = 0.
         dCdaoa = 0.
@@ -112,6 +109,7 @@ class BlasterSolver(om.ExplicitComponent):
         dCdx = np.zeros(self.isol.iobj['bnd'].nodes.size() * nDim)
 
         if inputs['visc_mode'][0]:
+            # Viscous adjoint solver
             self.adjointSolver.reset()
             self.adjointSolver.run()
             dClaoa = self.adjointSolver.tdCl_AoA
@@ -123,6 +121,8 @@ class BlasterSolver(om.ExplicitComponent):
                     dClx[inod*nDim + idim] = self.adjointSolver.tdCl_x[n.row][idim]
                     dCdx[inod*nDim + idim] = self.adjointSolver.tdCd_x[n.row][idim]
         elif not inputs['visc_mode'][0]:
+            # Inviscid adjoint solver
+            self.isol.iobj['adj'].run()
             dClaoa = self.isol.iobj['adj'].dClAoa
             dCdaoa = self.isol.iobj['adj'].dCdAoa
 
diff --git a/blast/src/blCoupledAdjoint.cpp b/blast/src/blCoupledAdjoint.cpp
index 16adf2b9b4a7ca7f9955b03a6ae5a78d1b71e70e..8c881e34045ced1e92f0bc06edbaa166b9992218 100644
--- a/blast/src/blCoupledAdjoint.cpp
+++ b/blast/src/blCoupledAdjoint.cpp
@@ -208,6 +208,9 @@ void CoupledAdjoint::buildAdjointMatrix(
 
 void CoupledAdjoint::run()
 {
+
+    iadjoint->run();
+
     tms["0-Total"].start();
     tms["1-Derivatives"].start();
     tms2["1-adj_inviscid"].start();
diff --git a/blast/tests/dart/adjoint_2D.py b/blast/tests/dart/adjoint_2D.py
index d942f7b97a0ad0c09b55116773c3d63bb890d7c7..be5955667443e0e14b61b78e5d880bf4e2aff568 100644
--- a/blast/tests/dart/adjoint_2D.py
+++ b/blast/tests/dart/adjoint_2D.py
@@ -112,11 +112,6 @@ def main():
     aeroCoeffs = coupler.run()
     tms['forward'].stop()
 
-    print(ccolors.ANSI_BLUE + 'PyDartAdjoint...' + ccolors.ANSI_RESET)
-    tms['adj_dart'].start()
-    isol.adjointSolver.run()
-    tms['adj_dart'].stop()
-
     print(ccolors.ANSI_BLUE + 'PyBlasterAdjoint...' + ccolors.ANSI_RESET)
     tms['adj_blast'].start()
     cAdj.run()
diff --git a/blast/tests/test_api_2D.py b/blast/tests/test_api_2D.py
index a9530b57f830e157c79793eaaf6b3b34eaccfbe2..0d5e150e77e9c0eb72b96b0684470a79743a82ea 100644
--- a/blast/tests/test_api_2D.py
+++ b/blast/tests/test_api_2D.py
@@ -105,7 +105,6 @@ def main():
     coupler.run()
 
     # Adjoint problem
-    isol.adjointSolver.run()
     adj.run()
     tms['total'].stop()