diff -cr alpine-2.00.orig/imap/src/c-client/mail.c alpine-2.00.new/imap/src/c-client/mail.c *** alpine-2.00.orig/imap/src/c-client/mail.c 2008-06-04 19:39:54.000000000 +0100 --- alpine-2.00.new/imap/src/c-client/mail.c 2009-04-30 22:34:13.000000000 +0100 *************** *** 2712,2717 **** --- 2712,2719 ---- BODY *b = NIL; PART *pt; unsigned long i; + /* Topal hack 2 */ + mail_fetchstructure (stream,msgno,&b); /* make sure have a body */ if (section && *section && mail_fetchstructure (stream,msgno,&b) && b) while (*section) { /* find desired section */ diff -cr alpine-2.00.orig/pith/mailcap.c alpine-2.00.new/pith/mailcap.c *** alpine-2.00.orig/pith/mailcap.c 2008-03-18 17:24:31.000000000 +0000 --- alpine-2.00.new/pith/mailcap.c 2009-04-30 22:35:47.000000000 +0100 *************** *** 582,589 **** * typically two scans through the check_extension * mechanism, the mailcap entry now takes precedence. */ ! if((fname = get_filename_parameter(NULL, 0, body, &e2b.from.ext)) != NULL ! && e2b.from.ext && e2b.from.ext[0]){ if(strlen(e2b.from.ext) < sizeof(tmp_ext) - 2){ strncpy(ext = tmp_ext, e2b.from.ext - 1, sizeof(tmp_ext)); /* remember it */ tmp_ext[sizeof(tmp_ext)-1] = '\0'; --- 582,598 ---- * typically two scans through the check_extension * mechanism, the mailcap entry now takes precedence. */ ! /* Topal hack 2 */ ! fname = get_filename_parameter(NULL, 0, body, &e2b.from.ext); ! if (fname == NULL) { ! if (body->type == TYPEMULTIPART && ! ((body->subtype && !strucmp(body->subtype, "signed")) ! ||(body->subtype && !strucmp(body->subtype, "encrypted")))) ! fname = cpystr("openpgp.msg"); ! } ! ! if(fname != NULL ! && e2b.from.ext && e2b.from.ext[0]){ if(strlen(e2b.from.ext) < sizeof(tmp_ext) - 2){ strncpy(ext = tmp_ext, e2b.from.ext - 1, sizeof(tmp_ext)); /* remember it */ tmp_ext[sizeof(tmp_ext)-1] = '\0';