diff --git a/inc/mail.php b/inc/mail.php
index c45a7c57e66795a2a431b8fe36cf354c418003b3..f991909d00ab34f71ccd680575f113f861a4d39f 100644
--- a/inc/mail.php
+++ b/inc/mail.php
@@ -112,9 +112,16 @@ function _mail_send_action($data) {
     }
 
     if(!utf8_isASCII($subject)) {
-        $subject = '=?UTF-8?Q?'.mail_quotedprintable_encode($subject,0).'?=';
+        $enc_subj = '=?UTF-8?Q?'.mail_quotedprintable_encode($subject,0).'?=';
         // Spaces must be encoded according to rfc2047. Use the "_" shorthand
-        $subject = preg_replace('/ /', '_', $subject);
+        $enc_sub = preg_replace('/ /', '_', $enc_sub);
+
+        // quoted printable has length restriction, use base64 if needed
+        if(strlen($subject) > 74){
+            $enc_subj = '=?UTF-8?B?'.base64_encode($subject).'?=';
+        }
+
+        $subject = $enc_subj;
     }
 
     $header  = '';