This document describes why it is possible that two copies of the same program might be loaded into the program pools.
Why are there two copies of a program loaded?
For example, DCMT D PROG may show something like this at the end of the ouput:
Address Debug In Pool Copy
3F34AC00 NO YES TEMP
003AE000 NO YES TEMP