diff --git a/include/boost/graph/plod_generator.hpp b/include/boost/graph/plod_generator.hpp index 4e19a6bb..d1ac2ada 100644 --- a/include/boost/graph/plod_generator.hpp +++ b/include/boost/graph/plod_generator.hpp @@ -89,7 +89,9 @@ namespace boost { source = x(*gen); } while ((*out_degrees)[source].second == 0); current.first = (*out_degrees)[source].first; - current.second = x(*gen); + do { + current.second = x(*gen); + } while (current.first == current.second && !allow_self_loops); --degrees_left; if (--(*out_degrees)[source].second == 0) { (*out_degrees)[source] = out_degrees->back();