diff --git a/dune/tectonic/time-stepping/state.cc b/dune/tectonic/time-stepping/state.cc
index 4184f3d765a8b014225ad146af0ca30683a7026e..44c745e4580ddb01b0d59a18878731ea53aed588 100644
--- a/dune/tectonic/time-stepping/state.cc
+++ b/dune/tectonic/time-stepping/state.cc
@@ -16,7 +16,12 @@ auto initStateUpdater(
 
   assert(contactCouplings.size() == couplings.size());
 
-  auto stateUpdater = std::make_shared<StateUpdater<ScalarVector, Vector>>();
+  std::vector<size_t> leafVertexCounts(alpha_initial.size(), 0);
+  for (size_t i=0; i<leafVertexCounts.size(); i++) {
+    leafVertexCounts[i] = alpha_initial[i].size();
+  }
+
+  auto stateUpdater = std::make_shared<StateUpdater<ScalarVector, Vector>>(leafVertexCounts);
 
   switch (model) {
     case Config::AgeingLaw:
diff --git a/dune/tectonic/time-stepping/state/ageinglawstateupdater.cc b/dune/tectonic/time-stepping/state/ageinglawstateupdater.cc
index 3d1feef2ffa7a44091b1ca7ec6fef3a6b93102f2..9766b1600eb18c96f326228586c6c3726fa467bf 100644
--- a/dune/tectonic/time-stepping/state/ageinglawstateupdater.cc
+++ b/dune/tectonic/time-stepping/state/ageinglawstateupdater.cc
@@ -57,7 +57,7 @@ void AgeingLawStateUpdater<ScalarVector, Vector>::solve(const Vector& velocity_f
 
     for (size_t i=0; i<alpha_.size(); ++i) {
         auto tangentVelocity = velocity_field[localToGlobal_[i]];
-        tangentVelocity[0] = 0;
+        tangentVelocity[0] = 0.0;
 
         double const V = tangentVelocity.two_norm();
         double const mtoL = -tau_ / L_;
diff --git a/dune/tectonic/time-stepping/state/sliplawstateupdater.cc b/dune/tectonic/time-stepping/state/sliplawstateupdater.cc
index a024744c7572ca4fa7486d622702e7cfb6e88a63..6aeba1042c5035cea5b7f33b821813053c33a9ff 100644
--- a/dune/tectonic/time-stepping/state/sliplawstateupdater.cc
+++ b/dune/tectonic/time-stepping/state/sliplawstateupdater.cc
@@ -43,7 +43,7 @@ void SlipLawStateUpdater<ScalarVector, Vector>::solve(
 
     for (size_t i=0; i<alpha_.size(); ++i) {
         auto tangentVelocity = velocity_field[localToGlobal_[i]];
-        tangentVelocity[0] = 0;
+        tangentVelocity[0] = 0.0;
 
         double const V = tangentVelocity.two_norm();
         double const mtVoL = -tau_ * V / L_;
diff --git a/dune/tectonic/time-stepping/state/stateupdater.hh b/dune/tectonic/time-stepping/state/stateupdater.hh
index 016e08c03042b887d9887ab5c97af53796ced090..5e347b78bfcd84181edcd7c1aaaf4d028bd11758 100644
--- a/dune/tectonic/time-stepping/state/stateupdater.hh
+++ b/dune/tectonic/time-stepping/state/stateupdater.hh
@@ -34,6 +34,9 @@ template <class ScalarVectorTEMPLATE, class Vector> class StateUpdater {
   using ScalarVector = ScalarVectorTEMPLATE;
   using LocalStateUpdater = LocalStateUpdater<ScalarVector, Vector>;
 
+  StateUpdater(const std::vector<size_t>& leafVertexCounts) :
+    leafVertexCounts_(leafVertexCounts) {}
+
   void addLocalUpdater(std::shared_ptr<LocalStateUpdater> localStateUpdater) {
     localStateUpdaters_.emplace_back(localStateUpdater);
   }
@@ -58,6 +61,11 @@ template <class ScalarVectorTEMPLATE, class Vector> class StateUpdater {
   }
 
   void extractAlpha(std::vector<ScalarVector>& alpha) {
+    alpha.resize(leafVertexCounts_.size());
+    for (size_t i=0; i<alpha.size(); i++) {
+        alpha[i].resize(leafVertexCounts_[i], 0.0);
+    }
+
     for (size_t i=0; i<localStateUpdaters_.size(); i++) {
         auto& localStateUpdater = localStateUpdaters_[i];
         localStateUpdater->extractAlpha(alpha[localStateUpdater->bodyIndex()]);
@@ -65,7 +73,7 @@ template <class ScalarVectorTEMPLATE, class Vector> class StateUpdater {
   }
 
   std::shared_ptr<StateUpdater<ScalarVector, Vector>> virtual clone() const {
-      auto updater = std::make_shared<StateUpdater<ScalarVector, Vector>>();
+      auto updater = std::make_shared<StateUpdater<ScalarVector, Vector>>(leafVertexCounts_);
 
       for (size_t i=0; i<localStateUpdaters_.size(); i++) {
           auto localUpdater = localStateUpdaters_[i]->clone();
@@ -75,6 +83,7 @@ template <class ScalarVectorTEMPLATE, class Vector> class StateUpdater {
   }
 
 private:
+  std::vector<size_t> leafVertexCounts_;
   std::vector<std::shared_ptr<LocalStateUpdater>> localStateUpdaters_;
 };
 #endif