diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp
index 25841a0a9e707014b6f09070d9a5c3d2497f507a..0df076d2aad9125cca71e7ba022e4ffbd6b93ba0 100644
--- a/ProcessLib/TimeLoop.cpp
+++ b/ProcessLib/TimeLoop.cpp
@@ -423,8 +423,8 @@ void TimeLoop::initialize()
     // Output initial conditions
     {
         const bool output_initial_condition = true;
-        outputSolutions(output_initial_condition, is_staggered_coupling, 0,
-                        _start_time, *_output, &Output::doOutput);
+        outputSolutions(output_initial_condition, 0, _start_time, *_output,
+                        &Output::doOutput);
     }
 
 }
@@ -490,8 +490,8 @@ bool TimeLoop::loop()
         if (!_last_step_rejected)
         {
             const bool output_initial_condition = false;
-            outputSolutions(output_initial_condition, is_staggered_coupling,
-                            timesteps, t, *_output, &Output::doOutput);
+            outputSolutions(output_initial_condition, timesteps, t, *_output,
+                            &Output::doOutput);
         }
 
         if (t == _end_time || t + dt > _end_time ||
@@ -519,7 +519,7 @@ bool TimeLoop::loop()
     if (nonlinear_solver_status.error_norms_met)
     {
         const bool output_initial_condition = false;
-        outputSolutions(output_initial_condition, is_staggered_coupling,
+        outputSolutions(output_initial_condition,
                         accepted_steps + rejected_steps, t, *_output,
                         &Output::doOutputLastTimestep);
     }
@@ -747,11 +747,14 @@ TimeLoop::solveCoupledEquationSystemsByStaggeredScheme(
 
 template <typename OutputClass, typename OutputClassMember>
 void TimeLoop::outputSolutions(bool const output_initial_condition,
-                               bool const is_staggered_coupling,
                                unsigned timestep, const double t,
                                OutputClass& output_object,
                                OutputClassMember output_class_member) const
 {
+    // All _per_process_data share the first process.
+    bool const is_staggered_coupling =
+        !isMonolithicProcess(*_per_process_data[0]);
+
     unsigned process_id = 0;
     for (auto& process_data : _per_process_data)
     {
diff --git a/ProcessLib/TimeLoop.h b/ProcessLib/TimeLoop.h
index 4221c2f59900a509af7e8a128484df2e3da5a634..c0b75efe4261290afcda107101122dd4e1dded28 100644
--- a/ProcessLib/TimeLoop.h
+++ b/ProcessLib/TimeLoop.h
@@ -104,8 +104,7 @@ private:
                                std::size_t& rejected_steps);
 
     template <typename OutputClass, typename OutputClassMember>
-    void outputSolutions(bool const output_initial_condition,
-                         bool const is_staggered_coupling, unsigned timestep,
+    void outputSolutions(bool const output_initial_condition, unsigned timestep,
                          const double t, OutputClass& output_object,
                          OutputClassMember output_class_member) const;