A method for providing access to a set of resources (106, 108, 110) on a computer using a first namespace (180, 182, 184, 228, 230, 232, 282, 284, 286) of resources on the computer and a second namespace of resources on the computer, wherein names of the resources of the namespaces to be accessed are ordered, and where one or more names are common to both namespaces and those one or more names refer to different respective instances of resources, the method comprising: receiving a request for a resource by an application (104, 158, 188, 222), the request beginning enumerating a logical namespace (220; 288); responsive to the receiving, dynamically merging the first namespace and the second namespace to form the logical namespace (220, 288); obtaining the resource from the logical namespace (220, 288); and repeating the dynamic merging and obtaining when a next name is needed from the enumeration of the logical namespace, wherein the dynamic merging and obtaining comprises: filling (252, 280.1) a next resource name from the first namespace and a next resource name from the second namespace in a candidate list, and marking respective resources as used in their respective first and second namespaces; finding (280.2) the entry with the smallest resource name in the candidate list based on a sort order, wherein if the smallest resource name exists in the first and in the second namespace, selecting (280.2.b) the entry from the namespace of the highest priority of the first and the second namespace in the candidate list as the found entry; removing (256; 280.3) all entries in the candidate list with the name of the found entry; and returning (254; 280.5) the found entry from the candidate list as the next name in the enumeration of the logical namespace (220, 288). receiving a request for a resource by an application (104, 158, 188, 222), the request beginning enumerating a logical namespace (220; 288); responsive to the receiving, dynamically merging the first namespace and the second namespace to form the logical namespace (220, 288); obtaining the resource from the logical namespace (220, 288); and repeating the dynamic merging and obtaining when a next name is needed from the enumeration of the logical namespace, wherein the dynamic merging and obtaining comprises: filling (252, 280.1) a next resource name from the first namespace and a next resource name from the second namespace in a candidate list, and marking respective resources as used in their respective first and second namespaces; finding (280.2) the entry with the smallest resource name in the candidate list based on a sort order, wherein if the smallest resource name exists in the first and in the second namespace, selecting (280.2.b) the entry from the namespace of the highest priority of the first and the second namespace in the candidate list as the found entry; removing (256; 280.3) all entries in the candidate list with the name of the found entry; and returning (254; 280.5) the found entry from the candidate list as the next name in the enumeration of the logical namespace (220, 288). filling (252, 280.1) a next resource name from the first namespace and a next resource name from the second namespace in a candidate list, and marking respective resources as used in their respective first and second namespaces; finding (280.2) the entry with the smallest resource name in the candidate list based on a sort order, wherein if the smallest resource name exists in the first and in the second namespace, selecting (280.2.b) the entry from the namespace of the highest priority of the first and the second namespace in the candidate list as the found entry; removing (256; 280.3) all entries in the candidate list with the name of the found entry; and returning (254; 280.5) the found entry from the candidate list as the next name in the enumeration of the logical namespace (220, 288).