As far as C is concerned, there can be no difference between > case '%': do_something(); break; and > case (WCHAR)L'%': do_something(); break; except that the latter is rather more complicated! Remember '%' is an int constant. David -- David Laight: david at l8s.co.uk