In the end, it turned out there was a whitespace character at the end of the string. I guess the moral of this story is - you can never be too careful about testing your input, and never assume you know what's in your data.
Thanks for all your help everyone.
in reply to Re^2: Unable to resolve links...
in thread Unable to resolve links...