How about creating a global array of some appropriate size, adding a call in every function in your code to add its own name to the array, and then at any point, just get the last so-many elements to know where you came from? It's not really a call "stack" as much as a call "trace." The caller of any function would be the last element in the array. The function to add to the array would have to do all the proper subscript incrementing and roll-around, making it a circular list of the last some-number of functions called. This may not be appropriate, because you do have to add something to every function. Dave "You can say that again." -- Dept. of Redundancy Dept.