diff --git a/Mesh/mwis.hpp b/Mesh/mwis.hpp
index 9179f207a1b33a457991405f2a11d22c87e56b43..e5177cfb5629e37cfbb1bd1928b8bc172caaaf42 100644
--- a/Mesh/mwis.hpp
+++ b/Mesh/mwis.hpp
@@ -881,11 +881,17 @@ public:
   void operator()(edge e, const Graph &g) {
     _set.insert(boost::target(e, g));
   }
+
+  void operator()(vertex v, const Graph &g) {
+    _set.insert(v);
+  }
 };
 
 template<typename Graph, typename WeightMap>
 lns_fragment<Graph> fragment_selector(const lns_state<Graph, WeightMap> &state) {
   typedef typename boost::graph_traits<Graph>::vertex_descriptor vertex;
+  typedef typename boost::graph_traits<Graph>::vertex_iterator vertex_iterator;
+  typedef typename boost::graph_traits<Graph>::out_edge_iterator out_edge_iterator;
 
   if (boost::num_vertices(state.graph) == 0)
     return lns_fragment<Graph>(std::set<vertex>());
@@ -898,7 +904,7 @@ lns_fragment<Graph> fragment_selector(const lns_state<Graph, WeightMap> &state)
 
   std::set<vertex> set;
   set.insert(v);
-  set_recorder<Graph, boost::on_black_target> recorder(set);
+  set_recorder<Graph, boost::on_examine_vertex> recorder(set);
 
   limited_queue<vertex> queue(neighborhood_size);