yes, it looks as the character = within the campaign tracking code does not work on the URL. I assume that the = is a reserved character and therefore you don't receive any characters afterwards.
the idea using a : as delimeter is what we are doing right now. but it is not perfect since some browsers seems to break on this special character (and thus encoding it). best would be to use a safe character such as - or _ but you need to make sure that the other values do not contain this character!