Hi, twoway_wcsstr doesn't (always) work with periodic needles. With the attached example haystack = L"playing play play play always"; needle = L"play play play"; mem0 = 9, ms = 3; thus, after a left-half mismatch on "playing", mem is 9 and for (k = ms + 1; k>mem && n[k - 1] == h[k - 1]; k--); terminates immediately. yves