Most approaches for recovering objects from procedural code are exclusively based on static information. These approaches have the advantage to build on information easily available. However, with code that is not built around very strong and ubiquitous data structures, substantial portions of this code cannot be clearly assigned to one of the objects the object-oriented system is made of. Here, we discuss an approach where the uncertainties that necessarily appear with purely data-structure driven approaches can be reduced by establishing in addition to the static object model a dynamic object model. The merits of the approach extend object recovery though. We consider the creation of event-state diagrams also useful for software redocumentation as well as for general program understanding.