diff --git a/ProcessLib/CoupledSolutionsForStaggeredScheme.cpp b/ProcessLib/CoupledSolutionsForStaggeredScheme.cpp
index 767e03cc0075db00d4e54460bf8af57161808cd3..2e780eb6117a0c4388a764e643f8b76cff5866ba 100644
--- a/ProcessLib/CoupledSolutionsForStaggeredScheme.cpp
+++ b/ProcessLib/CoupledSolutionsForStaggeredScheme.cpp
@@ -18,12 +18,12 @@
 namespace ProcessLib
 {
 CoupledSolutionsForStaggeredScheme::CoupledSolutionsForStaggeredScheme(
-    std::vector<std::reference_wrapper<GlobalVector const>> const& coupled_xs_)
+    std::vector<GlobalVector*> const& coupled_xs_)
     : coupled_xs(coupled_xs_)
 {
-    for (auto const& coupled_x : coupled_xs)
+    for (auto const* coupled_x : coupled_xs)
     {
-        MathLib::LinAlg::setLocalAccessibleVector(coupled_x.get());
+        MathLib::LinAlg::setLocalAccessibleVector(*coupled_x);
     }
 }
 
@@ -63,9 +63,9 @@ std::vector<std::vector<double>> getCurrentLocalSolutions(
     local_xs_t1.reserve(number_of_coupled_solutions);
 
     int coupling_id = 0;
-    for (auto const& x_t1 : cpl_xs.coupled_xs)
+    for (auto const* x_t1 : cpl_xs.coupled_xs)
     {
-        local_xs_t1.emplace_back(x_t1.get().get(indices[coupling_id]));
+        local_xs_t1.emplace_back(x_t1->get(indices[coupling_id]));
         coupling_id++;
     }
     return local_xs_t1;
diff --git a/ProcessLib/CoupledSolutionsForStaggeredScheme.h b/ProcessLib/CoupledSolutionsForStaggeredScheme.h
index 63f605d0098008ce03b34a9d8298a30dca447bb7..dacb524fd70734cdacc1941fe312f93ad91e5847 100644
--- a/ProcessLib/CoupledSolutionsForStaggeredScheme.h
+++ b/ProcessLib/CoupledSolutionsForStaggeredScheme.h
@@ -30,11 +30,10 @@ namespace ProcessLib
 struct CoupledSolutionsForStaggeredScheme
 {
     CoupledSolutionsForStaggeredScheme(
-        std::vector<std::reference_wrapper<GlobalVector const>> const&
-            coupled_xs_);
+        std::vector<GlobalVector*> const& coupled_xs_);
 
     /// References to the current solutions of the coupled processes.
-    std::vector<std::reference_wrapper<GlobalVector const>> const& coupled_xs;
+    std::vector<GlobalVector*> const& coupled_xs;
 
     /// Pointers to the vector of the solutions of the previous time step.
     std::vector<GlobalVector*> coupled_xs_t0;
diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
index 3fb0e865729f704403c7f0d1b68b7810ed5b83eb..37d31666d9582fe96d27602b711773b5beb76a99 100644
--- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp
+++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp
@@ -323,7 +323,7 @@ void PhaseFieldProcess<DisplacementDim>::postNonLinearSolverConcreteProcess(
                 _process_data.pressure;
             INFO("Internal pressure: %g and Pressure error: %.4e",
                  _process_data.pressure, _process_data.pressure_error);
-            auto& u = _coupled_solutions->coupled_xs[0].get();
+            auto& u = *_coupled_solutions->coupled_xs[0];
             MathLib::LinAlg::scale(const_cast<GlobalVector&>(u),
                                    _process_data.pressure);
         }
@@ -332,7 +332,7 @@ void PhaseFieldProcess<DisplacementDim>::postNonLinearSolverConcreteProcess(
     {
         if (_process_data.propagating_crack)
         {
-            auto& u = _coupled_solutions->coupled_xs[0].get();
+            auto& u = *_coupled_solutions->coupled_xs[0];
             MathLib::LinAlg::scale(const_cast<GlobalVector&>(u),
                                    1 / _process_data.pressure);
         }
diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp
index 822adbc1777f4e7b980a2d3d1bcbbcdeac56c69c..d21fb89cc00d21b4598e5f98f4501b34056ddc19 100644
--- a/ProcessLib/TimeLoop.cpp
+++ b/ProcessLib/TimeLoop.cpp
@@ -575,7 +575,7 @@ void postTimestepForAllProcesses(
         if (is_staggered_coupling)
         {
             CoupledSolutionsForStaggeredScheme coupled_solutions(
-                solutions_of_coupled_processes);
+                _process_solutions);
             pcs.setCoupledSolutionsForStaggeredScheme(&coupled_solutions);
         }
         auto& x = *_process_solutions[process_id];
@@ -663,7 +663,7 @@ TimeLoop::solveCoupledEquationSystemsByStaggeredScheme(
             auto& x = *_process_solutions[process_id];
 
             CoupledSolutionsForStaggeredScheme coupled_solutions(
-                _solutions_of_coupled_processes);
+                _process_solutions);
 
             process_data->process.setCoupledSolutionsForStaggeredScheme(
                 &coupled_solutions);
@@ -788,7 +788,7 @@ void TimeLoop::outputSolutions(bool const output_initial_condition,
         if (is_staggered_coupling)
         {
             CoupledSolutionsForStaggeredScheme coupled_solutions(
-                _solutions_of_coupled_processes);
+                _process_solutions);
 
             process_data->process.setCoupledSolutionsForStaggeredScheme(
                 &coupled_solutions);