Index: svn/src/parameter.cpp =================================================================== --- svn/src/parameter.cpp (revision 597) +++ svn/src/parameter.cpp (working copy) @@ -239,8 +239,21 @@ { value << t.getWholeBuffer(); - if (!foundCharsetChunk) - ch = t.getWordAt(0)->getCharset(); + if (!foundCharsetChunk) { + // this is still wrong. each word can have it's + // own charset, and can be mixed (eg. iso-8859-1 + // and iso-2022-jp), but very unlikely. + // real fix is to have parameters store a + // vmime::text in stead of a vmime::word in + // m_value. but that changes the interface + for (size_t i = 0; i < t.getWordCount(); i++) { + if (t.getWordAt(i)->getCharset() != ch && ch == charsets::US_ASCII) { + ch = t.getWordAt(i)->getCharset(); + break; + } + } + + } } } }