TGrepSearchRunner.GrepMapFile (GX_GrepBackend.pas) looks for each unit of the map file with a loop of its own over the folders (ExpandFileName, AddSlash, FileExists).
The same lookup exists as GX_GenericUtils.TryFindPathToFile and GX_GenericUtils.FindFileInSearchPath. A change to how folders and file names are joined, or to which copy is taken (bug #569), has to be made in each of them.
If the map file search is to take only the first copy of a unit, it can call one of these functions instead of its own loop.
Found while reviewing the fix for bug #553.