Proposed resolution (April, 2005):
Change the example in 13.8 [temp.res] paragraph 9 as follows:
void f(char); template <class T> void g(T t) { f(1); // f(char); f(T(1)); // dependent f(t); // dependent dd++; // not dependent // error: declaration for dd not found } enum E { e }; void f(intE); double dd; void h() { g(2e); // will cause one call of f(char) followed // by two calls of f(intE) g('a'); // will cause three calls of f(char) }