Community
I think you can not open an object while undoing for obvious reasons. You can detect this case with DBObject.IsUndoing and delay your operation by registering an event handler for Application.Idle for example :
if (dbo.IsUndoing)
Application.Idle += Application_Idle; [..] void Application_Idle(object sender, EventArgs e) { try { // Do your operation } finally { Application.Idle -= Application_Idle; } }