#define is_fws(c) (c == '\t' || c == ' ')
-#define qpspecial(c) (c < ' ' || c == '=' && c == '?' && c == '_')
+#define qpspecial(c) (c < ' ' || c == '=' || c == '?' || c == '_')
#define ENCODELINELIMIT 76
for (p = *value; *p != '\0'; p++) {
if (isascii((int) *p)) {
asciicount++;
- if (qpspecial(*p))
+ if (qpspecial((int) *p))
qpspecialcount++;
} else
eightbitcount++;
if (*p == ' ') {
*q++ = '_';
ascii--;
- } else if (!qpspecial(*p)) {
+ } else if (isascii((int) *p) && !qpspecial((int) *p)) {
*q++ = *p;
ascii--;
} else {