diff --git a/src/boundary_writer.cc b/src/boundary_writer.cc
index 7a37208001e73301bf30c0578bf3a8de6e9539de..8649f3d85173c53dc534fcb29a7b0f88bae5fb35 100644
--- a/src/boundary_writer.cc
+++ b/src/boundary_writer.cc
@@ -3,6 +3,7 @@
 #endif
 
 #include "boundary_writer.hh"
+#include "tobool.hh"
 
 template <class ScalarVector, class Vector>
 BoundaryWriter<ScalarVector, Vector>::BoundaryWriter(
@@ -16,7 +17,7 @@ BoundaryWriter<ScalarVector, Vector>::BoundaryWriter(
   std::fstream vertexCoordinateWriter(prefix + "Coordinates",
                                       std::fstream::out);
   for (size_t i = 0; i < boundaryNodes.size(); ++i)
-    if (boundaryNodes[i][0])
+    if (toBool(boundaryNodes[i]))
       vertexCoordinateWriter << vertexCoordinates[i] << std::endl;
   vertexCoordinateWriter.close();
 }
@@ -31,7 +32,7 @@ template <class ScalarVector, class Vector>
 void BoundaryWriter<ScalarVector, Vector>::writeKinetics(Vector const &u,
                                                          Vector const &v) {
   for (size_t i = 0; i < boundaryNodes.size(); ++i) {
-    if (!boundaryNodes[i][0])
+    if (!toBool(boundaryNodes[i]))
       continue;
 
     displacementWriter << projector_(u[i]) << " ";
diff --git a/src/friction_writer.cc b/src/friction_writer.cc
index 9f07b3c2c3a5a552da9ff1a93e23a2220b29487c..175f8e6a94bfbd8c6ccede17bbe0d702b07ef51a 100644
--- a/src/friction_writer.cc
+++ b/src/friction_writer.cc
@@ -3,6 +3,7 @@
 #endif
 
 #include "friction_writer.hh"
+#include "tobool.hh"
 
 template <class ScalarVector, class Vector>
 FrictionWriter<ScalarVector, Vector>::FrictionWriter(
@@ -23,7 +24,7 @@ template <class ScalarVector, class Vector>
 void FrictionWriter<ScalarVector, Vector>::writeOther(
     ScalarVector const &coefficient, ScalarVector const &alpha) {
   for (size_t i = 0; i < boundaryNodes.size(); ++i) {
-    if (!boundaryNodes[i][0])
+    if (!toBool(boundaryNodes[i]))
       continue;
 
     coefficientWriter << coefficient[i] << " ";
diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc
index e2e7ecb162707868cbe85c0e5316b46d92128834..173aa45054c36f46c97102da3aabdffc9cb0a760 100644
--- a/src/sand-wedge.cc
+++ b/src/sand-wedge.cc
@@ -68,6 +68,7 @@
 #include <dune/tectonic/globalnonlinearity.hh>
 
 #include "assemblers.hh"
+#include "tobool.hh"
 #include "enum_parser.cc"
 #include "enum_scheme.cc"
 #include "enum_state_model.cc"
diff --git a/src/state/dieterichstateupdater.hh b/src/state/dieterichstateupdater.hh
index ffb417a08d39a3e3b5ebe1d040869664dbfbd75e..30a9c6dc57a2ede08a836e5857fe715356231061 100644
--- a/src/state/dieterichstateupdater.hh
+++ b/src/state/dieterichstateupdater.hh
@@ -1,6 +1,7 @@
 #ifndef DIETERICH_STATE_UPDATER_HH
 #define DIETERICH_STATE_UPDATER_HH
 
+#include "tobool.hh"
 #include "stateupdater.hh"
 
 template <class ScalarVector, class Vector>
@@ -56,7 +57,7 @@ template <class ScalarVector, class Vector>
 void DieterichStateUpdater<ScalarVector, Vector>::solve(
     Vector const &velocity_field) {
   for (size_t i = 0; i < nodes.size(); ++i) {
-    if (not nodes[i][0])
+    if (not toBool(nodes[i]))
       continue;
 
     double const VoL = velocity_field[i].two_norm() / L;
diff --git a/src/state/ruinastateupdater.hh b/src/state/ruinastateupdater.hh
index d87870bb0716508d32176a46e08265562770e333..578f1e9fecd517dc3ce02182c4a417705a723517 100644
--- a/src/state/ruinastateupdater.hh
+++ b/src/state/ruinastateupdater.hh
@@ -1,6 +1,7 @@
 #ifndef RUINA_STATE_UPDATER_HH
 #define RUINA_STATE_UPDATER_HH
 
+#include "tobool.hh"
 #include "stateupdater.hh"
 
 template <class ScalarVector, class Vector>
@@ -42,7 +43,7 @@ template <class ScalarVector, class Vector>
 void RuinaStateUpdater<ScalarVector, Vector>::solve(
     Vector const &velocity_field) {
   for (size_t i = 0; i < nodes.size(); ++i) {
-    if (not nodes[i][0])
+    if (not toBool(nodes[i]))
       continue;
 
     double const VoL = velocity_field[i].two_norm() / L;
diff --git a/src/tobool.hh b/src/tobool.hh
new file mode 100644
index 0000000000000000000000000000000000000000..d561225dd3d4615c2d3fc31648a9f20abad9977e
--- /dev/null
+++ b/src/tobool.hh
@@ -0,0 +1,9 @@
+#ifndef TO_BOOL_HH
+#define TO_BOOL_HH
+
+template <class Alloc>
+bool toBool(Dune::BitSetVectorConstReference<1, Alloc> x) {
+  return x[0];
+}
+
+#endif