diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
index 3e77b63db2ba1c334af7bb45ecda3cfc4e135d25..cbc71e52f2ccc4b2695673ff72db707889f057d8 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp
@@ -63,6 +63,8 @@ void ComponentTransportProcess::initializeConcreteProcess(
              pv_iter != _process_variables.end();
              ++pv_iter)
             transport_process_variables.push_back((*pv_iter)[0]);
+
+        _xs_previous_timestep.resize(_process_variables.size());
     }
 
     ProcessLib::createLocalAssemblers<LocalAssemblerData>(
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.h b/ProcessLib/ComponentTransport/ComponentTransportProcess.h
index 4e02bfa0efd190ea02711c0dc2196c2ec2b500ab..054d88b3e2ec82cf2ef72c369f609bcce4bd72c4 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.h
@@ -147,7 +147,7 @@ private:
         _local_assemblers;
 
     /// Solutions of the previous time step
-    std::array<std::unique_ptr<GlobalVector>, 2> _xs_previous_timestep;
+    std::vector<std::unique_ptr<GlobalVector>> _xs_previous_timestep;
 
     std::unique_ptr<ProcessLib::SurfaceFluxData> _surfaceflux;
 };