Hi Peter, You don't like my fictitious Car.xml/PoliceReport.xml example? Bummer. Okay, then here's an actual, real-world example. It is an exact analog of the Car.xml/Police.xml example, albeit a bit more complex. A radar scans the sky and detects an object. The radar saves the information about the object to an XML file and stores the file in a folder (along with other files that it has stored for other objects): <Object id="XYZ"> <Location> <Latitude>10</Latitude> <Longitude>20</Longitude> <Elevation>100</Elevation> </Location> <DateTime>...</DateTime> -- other info -- </Object> At some point a program reads in that XML document and begins processing it. The objective of processing is to output an alert if the object represents an enemy aircraft and "" (benign object) otherwise. However, the program determines that the document does not contain sufficient information to make a decision. The information to make the decision arrives some time later, in another document (the radar has subsequently collected additional information about the object): <UpdatedInfo> <Object id="XYZ"> <FlightProfile>......<FlightProfile> </Object> </PoliceReport> So the desired processing behavior is this: Read the next XML document. If the XML document contains data about an object and there is insufficient information to process it then Wait until more info about the object arrives .... .......... time elapses ........... the updated info arrives: analyze the new info and if it indicates the object is an enemy aircraft then output an alert message else output "" That algorithm involves dealing with time. Here's how to eliminate time from the equation. -- As I described earlier -- /Roger