diff --git a/src/mesh/blockforest/BlockExclusion.h b/src/mesh/blockforest/BlockExclusion.h
index 277670ab91dd70a7b085ed26ff6c14945243952b..03c4cadac3596755484dff3603ffe47dfc9ff724 100644
--- a/src/mesh/blockforest/BlockExclusion.h
+++ b/src/mesh/blockforest/BlockExclusion.h
@@ -103,7 +103,8 @@ void walberla::mesh::ExcludeMeshExterior<DistanceObject>::operator()( std::vecto
       for( int i = chunkBegin; i < chunkEnd; ++i )
       {
          size_t is = numeric_cast<size_t>( i );
-         if( !isIntersecting( *distanceObject_, aabb( shuffle[is] ), maxError_ ) )
+         auto intersectionDefined = isIntersecting( *distanceObject_, aabb( shuffle[is] ), maxError_ );
+         if( intersectionDefined && !intersectionDefined.value() )
             excludeBlock[ shuffle[is] ] = uint8_t( 1 );
       }
 
@@ -143,7 +144,8 @@ void walberla::mesh::ExcludeMeshInterior<DistanceObject>::operator()( std::vecto
    for( int i = chunkBegin; i < chunkEnd; ++i )
    {
       size_t is = numeric_cast<size_t>( i );
-      if( fullyCoversAABB( *distanceObject_, aabb( shuffle[is] ), maxError_ ) )
+      auto fullCoveringAABBDefined = fullyCoversAABB( *distanceObject_, aabb( shuffle[is] ), maxError_ );
+      if( fullCoveringAABBDefined && fullCoveringAABBDefined.value() )
          excludeBlock[ shuffle[is] ] = uint8_t( 1 );
    }