diff --git a/apps/susimail/src/src/i2p/susi/webmail/encoding/HeaderLine.java b/apps/susimail/src/src/i2p/susi/webmail/encoding/HeaderLine.java
index 560eaa330ecc0e0f77d900660f8d62ccdeba935b..2da2dbd3afc8769517ba7f2d39a7ef95682f4650 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/encoding/HeaderLine.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/encoding/HeaderLine.java
@@ -195,18 +195,26 @@ public class HeaderLine extends Encoding {
 												String charset = new String(in, f1 + 1, f2 - f1 - 1, "ISO-8859-1");
 												String clc = charset.toLowerCase(Locale.US);
 												if (clc.equals("utf-8") || clc.equals("utf8")) {
-													for( int j = 0; j < tmp.length; j++ ) {
-														byte d = tmp.content[ tmp.offset + j ];
-														out.write( d == '_' ? 32 : d );
+													if (enc.equals("quoted-printable")) {
+														for( int j = 0; j < tmp.length; j++ ) {
+															byte d = tmp.content[ tmp.offset + j ];
+															out.write( d == '_' ? 32 : d );
+														}
+													} else {
+														out.write(tmp.content, tmp.offset, tmp.length);
 													}
 												} else {
 													// decode string
 													String decoded = new String(tmp.content, tmp.offset, tmp.length, charset);
 													// encode string
 													byte[] utf8 = DataHelper.getUTF8(decoded);
-													for( int j = 0; j < utf8.length; j++ ) {
-														byte d = utf8[j];
-														out.write( d == '_' ? 32 : d );
+													if (enc.equals("quoted-printable")) {
+														for( int j = 0; j < utf8.length; j++ ) {
+															byte d = utf8[j];
+															out.write( d == '_' ? 32 : d );
+														}
+													} else {
+														out.write(utf8);
 													}
 												}
 												int distance = f4 + 2 - offset;