diff --git a/ogstools/feflowlib/tools.py b/ogstools/feflowlib/tools.py
index d2cbfa0b546bb2b914e3b7f7a6eaa6a646965458..f9ffd6e8ad448b790fa64098c090aa9497dbfdfd 100644
--- a/ogstools/feflowlib/tools.py
+++ b/ogstools/feflowlib/tools.py
@@ -84,29 +84,25 @@ def extract_point_boundary_conditions(
     :rtype: dict
     """
     dict_of_point_boundary_conditions = {}
+    # Assigning bulk node ids because format needs to be unsigned integer for OGS.
+    # Otherwise vtkOriginalPointIds would be fine.
     assign_bulk_ids(mesh)
     # extract mesh since boundary condition are on the surface ?! (not safe!)
     surf_mesh = mesh.extract_surface()
     # remove all the point data that are not of interest
     for point_data in surf_mesh.point_data:
-        if not all(["_BC" in point_data]) and point_data != "bulk_node_ids":
+        if "_BC" not in point_data and point_data != "bulk_node_ids":
             surf_mesh.point_data.remove(point_data)
     # remove all points with point data that are of "nan"-value
     for point_data in surf_mesh.point_data:
         if point_data != "bulk_node_ids":
-            dirichlet_bool = "_BC_" not in point_data
-            if "_4TH" in point_data:
-                filtered_points = mesh.extract_points(
-                    [not np.isnan(x) for x in mesh[point_data]],
-                    adjacent_cells=False,
-                    include_cells=False,
-                )
-            else:
-                filtered_points = surf_mesh.extract_points(
-                    [not np.isnan(x) for x in surf_mesh[point_data]],
-                    adjacent_cells=False,
-                    include_cells=dirichlet_bool,
-                )
+            BC_2nd_or_3rd = "2ND" in point_data or "3RD" in point_data
+            filter_mesh = mesh if "_4TH" in point_data else surf_mesh
+            filtered_points = filter_mesh.extract_points(
+                [not np.isnan(x) for x in filter_mesh[point_data]],
+                adjacent_cells=False,
+                include_cells=BC_2nd_or_3rd,
+            )
             # Only selected point data is needed -> clear all cell data instead of the bulk_element_ids
             for cell_data in filtered_points.cell_data:
                 if cell_data != "bulk_element_ids":