> > Something I don't understand is how this code excludes qualified names, > or method names, from ADL lookup. > It does not. At first I wanted to solve this problem through the same mechanism that is used for regular namespace overload resolution, but regular overload resolution does not have this problem since it can restrict the search to the scope of the name that has been found already whether it was found through full qualification or otherwise. ADL cannot do that since candidates can belong to a namespace outside the current hierarchy. So I added the no_adl argument. So if a name is fully qualified and a candidate is found no_adl is used. If a name is fully qualified and no candidate is found an error is given by the parser. If a name is not fully qualified and no candidates are found ADL is attempted. And finally if a name is not fully qualified and a candidate if found ADL proposals are added to the overload set. for member functions find_oload_champ_namespace is just not called at all. I have added tests for all of the above situations. Sami