diff --git a/src/mesh/blockforest/RefinementSelection.h b/src/mesh/blockforest/RefinementSelection.h
index dcf05282656bc84127f4acb800662f978b40b3e0..3061ceb14a8aa8e21a76acb67f8d9370bc98f7ed 100644
--- a/src/mesh/blockforest/RefinementSelection.h
+++ b/src/mesh/blockforest/RefinementSelection.h
@@ -98,13 +98,14 @@ inline void walberla::mesh::RefinementSelection<DistanceObject>::operator()( blo
    #endif
    for( int i = chunkBegin; i < chunkEnd; ++i )
    {
-      const uint_t blockLevel = blocks[ shuffle[i] ]->getLevel();
+      const size_t ii = numeric_cast<size_t>( i );
+      const uint_t blockLevel = blocks[ shuffle[ii] ]->getLevel();
       if( blockLevel >= level_ )
          continue;
 
-      boost::tribool intersects = intersectsSurface( *distanceObject_, blocks[ shuffle[i] ]->getAABB(), maxError_, distance_ );
+      boost::tribool intersects = intersectsSurface( *distanceObject_, blocks[ shuffle[ii] ]->getAABB(), maxError_, distance_ );
       if( indeterminate( intersects ) || intersects )
-         refine[ shuffle[ i ] ] = uint8_t( 1 );
+         refine[ shuffle[ ii ] ] = uint8_t( 1 );
    }
 
    allReduceInplace( refine, mpi::LOGICAL_OR );
diff --git a/src/mesh/distance_bsdree/SplitMesh.h b/src/mesh/distance_bsdree/SplitMesh.h
index b4f4404c355899ac37c7c9fd339ea189d51c4d66..d8e406a20b37ee5a335eb878eda4484511027bd1 100644
--- a/src/mesh/distance_bsdree/SplitMesh.h
+++ b/src/mesh/distance_bsdree/SplitMesh.h
@@ -70,7 +70,7 @@ Plane< typename MeshType::Scalar > splitFaces( const MeshType & mesh, InputItera
    const Point direction = principalComponent( mesh, faceHandlesBegin, faceHandlesEnd, uint_t(10) );
 
    std::vector< Face<MeshType> > faces;
-   faces.reserve( std::distance( faceHandlesBegin, faceHandlesEnd ) );
+   faces.reserve( numeric_cast<size_t>( std::distance( faceHandlesBegin, faceHandlesEnd ) ) );
 
    for( auto it = faceHandlesBegin; it != faceHandlesEnd; ++it )
       faces.push_back( Face<MeshType>( mesh, *it, direction ) );
@@ -87,8 +87,8 @@ Plane< typename MeshType::Scalar > splitFaces( const MeshType & mesh, InputItera
    for( ; splitElement != faces.end() && splitElement->d() <= d ; ++splitElement )
       ; // empty body
 
-   lowerHalfSpaceFaces.resize( std::distance( faces.begin(), splitElement ) );
-   upperHalfSpaceFaces.resize( std::distance( splitElement,  faces.end() ) );
+   lowerHalfSpaceFaces.resize( numeric_cast<size_t>( std::distance( faces.begin(), splitElement ) ) );
+   upperHalfSpaceFaces.resize( numeric_cast<size_t>( std::distance( splitElement,  faces.end() ) ) );
 
    std::transform( faces.begin(), splitElement, lowerHalfSpaceFaces.begin(), Face<MeshType>::toFaceHandle );
    std::transform( splitElement,  faces.end(),  upperHalfSpaceFaces.begin(), Face<MeshType>::toFaceHandle );
@@ -98,4 +98,4 @@ Plane< typename MeshType::Scalar > splitFaces( const MeshType & mesh, InputItera
 
 } // namespace distance_bsdtree
 } // namespace mesh
-} // namespace walberla
\ No newline at end of file
+} // namespace walberla