diff --git a/dune/tectonic/globalruinanonlinearity.hh b/dune/tectonic/globalruinanonlinearity.hh
index 7e82479c0f70005e3f8c8789103222bca22d36a3..ec0d5702871487edf219e7db8bb3b8922b35d89c 100644
--- a/dune/tectonic/globalruinanonlinearity.hh
+++ b/dune/tectonic/globalruinanonlinearity.hh
@@ -24,17 +24,17 @@ class GlobalRuinaNonlinearity : public GlobalNonlinearity<Matrix, Vector> {
 
 public:
   GlobalRuinaNonlinearity(Dune::BitSetVector<1> const &frictionalNodes,
-                          ScalarVector const &nodalIntegrals,
-                          FrictionData const &fd)
-      : restrictions(nodalIntegrals.size()) {
+                          ScalarVector const &weights, FrictionData const &fd)
+      : restrictions(frictionalNodes.size()) {
     auto trivialNonlinearity =
         std::make_shared<Friction>(std::make_shared<TrivialFunction>());
     for (size_t i = 0; i < restrictions.size(); ++i) {
-      restrictions[i] =
-          frictionalNodes[i][0]
-              ? std::make_shared<Friction>(
-                    std::make_shared<FrictionPotential>(nodalIntegrals[i], fd))
-              : trivialNonlinearity;
+      if (not frictionalNodes[i][0]) {
+        restrictions[i] = trivialNonlinearity;
+        continue;
+      }
+      auto const fp = std::make_shared<FrictionPotential>(weights[i], fd);
+      restrictions[i] = std::make_shared<Friction>(fp);
     }
   }