Why not just update the displist then on a call to update with a mesh from object? Maybe just call void makeDispList(Object *ob) and pass it the object the mesh came from. makeDispList will free the original displist and replace it with a new one.