Index: Source/Additions/GSMime.m
===================================================================
--- Source/Additions/GSMime.m	(revision 37035)
+++ Source/Additions/GSMime.m	(working copy)
@@ -2914,8 +2914,28 @@
 	{
 	  /* Append any accumulated text to the header.
 	   */
-	  if (src > beg)
+	if (src > beg){
+		s = [NSStringClass allocWithZone: NSDefaultMallocZone()];
+		s = [s initWithBytes: beg	length: src - beg  encoding: NSISOLatin1StringEncoding];
+		if(!s){
+			s = [NSStringClass allocWithZone: NSDefaultMallocZone()];
+			s = [s initWithBytes: beg	length: src - beg  encoding: NSASCIIStringEncoding];
+			if(!s){
+				s = [NSStringClass allocWithZone: NSDefaultMallocZone()];
+				s = [s initWithBytes: beg	length: src - beg  encoding: NSUTF8StringEncoding];
+			}
+		}
+ 		if(!s){
+			NSLog(@"Bad header ... illegal characters in %@",[NSData dataWithBytes: beg length: src - beg]);
+			flags.hadErrors = 1;
+			return nil;
+		}
+		[hdr appendString: s];
+		RELEASE(s);
+	}
+/*
 	    {
+
 	      s = [NSStringClass allocWithZone: NSDefaultMallocZone()];
 	      if (flags.isHttp == 1)
 		{
@@ -2953,7 +2973,7 @@
 	      [hdr appendString: s];
 	      RELEASE(s);
 	    }
-
+*/
 	  if ('=' == src[0])
 	    {
 	      const unsigned char	*tmp;
