Here is a clumsy workaround for this bug, only practical if your script doesn’t coerce a lot of POSIX paths. It’s based on this page, with one slight modification:
This is the handler (slightly modified from the original (I couldn’t make it work in my scripts until I added “as string”)
use framework "Foundation"
property NSString : a reference to current application's NSString
on remove:remove_string fromString:source_string
set s_String to NSString's stringWithString:source_string
set r_String to NSString's stringWithString:remove_string
return (s_String's stringByReplacingOccurrencesOfString:r_String withString:"") as string
To use it, immediately after you get a POSIX path, add this:
if myPosixPathVariable contains ":" then
set myPosixPathVariable to my remove:":" fromString:myPosixPathVariable
This is obviously a great waste of time, and anyone who knows anything about AppleScript can write something better, but it seems to get the job done while the bug remains unfixed.