A buffer should contain a number of buffer wide data. This could be a list of bibliographic entries, or a list of labels. This information naturally belongs in the buffer.
Some insets need access to this information, primarily because they reference it. Therefore, these insets logically should know about the buffer. They are defined by the pair of their own internal state, and the other stuff they reference in a buffer. In other words, you *will* have to by pointer shuffling if such an inset is moved around. So, the problem will still exist, even if you decide that insets should be buffer agnostic. Therefore, I'm inclined to think that insets *should* know about their buffer. I believe this will make many things simpler. The discussion is a discussion about whether it is hard to keep back links alive in a tree. Come on, it is not. This is stuff from the first page in the data structure book. Greets, Asger