Has there been some fundamental change to std::string between VS2005 and VS2015?

I'm building an app with VS2015 (which I only recently installed). It links to some DLLs that were built with VS2005. Sooner or later I'll get around to re-building the DLLs but I figured I should be okay for s short while. I know there are various things to avoid - such as not allocating memory in a VS2005 DLL and then trying to free it in a VS2015 app but I didn't anticipate a problem with std::string. Take this function as an example:-

void some_func()
	std::string test = call_some_func_in_the_vs2005_dll();

	// rest of function...
The function is in my main app - so test will be of whatever type of string is known to VS2015. But call_some_func_in_the_vs2005_dll() returns a std::string as it was previously known to VS2005. This allocation from one type to the other type invariably crashes my program. It doesn't necessarily crash it at the point of assignment. Usually the crash happens when returning from the function (i.e something has corrupted the stack).

Does that make sense to anybody here or have I got some really weird problem going on.?