--- /lib/python2.4/email/Utils.py.orig 2006-05-18 04:42:34.001000000 -0700 +++ /lib/python2.4/email/Utils.py 2006-07-07 15:36:06.687500000 -0700 @@ -249,11 +249,16 @@ new_params = [] # maps parameter's name to a list of continuations rfc2231_params = {} + rfc2231_extended = {} # params is a sequence of 2-tuples containing (content_type, string value) name, value = params[0] new_params.append((name, value)) # Cycle through each of the rest of the parameters. for name, value in params[1:]: + if name.endswith('*'): + rfc2231_extended_flag = True + else: + rfc2231_extended_flag = False value = unquote(value) mo = rfc2231_continuation.match(name) if mo: @@ -262,6 +267,8 @@ num = int(num) rfc2231_param1 = rfc2231_params.setdefault(name, []) rfc2231_param1.append((num, value)) + if rfc2231_extended_flag: + rfc2231_extended[name] = True else: new_params.append((name, '"%s"' % quote(value))) if rfc2231_params: @@ -272,9 +279,14 @@ # And now append all values in num order for num, continuation in continuations: value.append(continuation) - charset, language, value = decode_rfc2231(EMPTYSTRING.join(value)) - new_params.append( - (name, (charset, language, '"%s"' % quote(value)))) + if rfc2231_extended.has_key(name): + charset, language, value = \ + decode_rfc2231(EMPTYSTRING.join(value)) + new_params.append( + (name, (charset, language, '"%s"' % quote(value)))) + else: + new_params.append( + (name, '"%s"' % quote(EMPTYSTRING.join(value)))) return new_params def collapse_rfc2231_value(value, errors='replace',