diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index c567819cbdb27b6e4fe5910865b4a36c0c01faa9..f3a6fd5c3630d67afd9a935a3f9046f53cb80e75 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -194,7 +194,10 @@ class MailFetcher {
     }
 
     //Convert text to desired encoding..defaults to utf8
-    function mime_encode($text, $charset=null, $enc='utf-8') { //Thank in part to afterburner  
+    function mime_encode($text, $charset=null, $enc='utf-8') { //Thank in part to afterburner 
+
+        if($charset && in_array(trim($charset), array('default','x-user-defined')))
+            $charset = 'ASCII';
         
         if(function_exists('iconv') and ($charset or function_exists('mb_detect_encoding'))) {
             if($charset)
@@ -208,13 +211,13 @@ class MailFetcher {
         return utf8_encode($text);
     }
     
-    //Generic decoder - resuting text is utf8 encoded -> mirrors imap_utf8
-    function mime_decode($text) {
+    //Generic decoder - resulting text is utf8 encoded -> mirrors imap_utf8
+    function mime_decode($text, $enc='utf-8') {
         
         $str = '';
         $parts = imap_mime_header_decode($text);
         foreach ($parts as $part)
-            $str.= $this->mime_encode($part->text, ($part->charset=='default'?'ASCII':$part->charset), 'utf-8');
+            $str.= $this->mime_encode($part->text, $part->charset, $enc);
         
         return $str?$str:imap_utf8($text);
     }