private void InsertBox(Box box) { if (m_destination is ParaBox) { ((ParaBox)m_destination).InsertRun(m_insertRunAt, (IClientRun)box); m_insertRunAt++; // Enhance JohnT: should we do something special instead of the usual insertion into the CurrentHookup? } else { m_destination.InsertBox(box, m_insertAfter); m_insertAfter = box; } var currentItem = CurrentHookup as ItemHookup; if (currentItem != null) { currentItem.AddBox(box); } }