diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 3632af200c..6c3841ba63 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2640,6 +2640,12 @@ void Buffer::collectChildren(ListOfBuffers & clist, bool grand_children) const // there might be grandchildren child->collectChildren(clist, true); } + // Make sure we have not included ourselves. + ListOfBuffers::iterator bit = find(clist.begin(), clist.end(), this); + if (bit != clist.end()) { + LYXERR0("Recursive include detected in `" << fileName() << "'."); + clist.erase(bit); + } }