Index: mail/ChangeLog
===================================================================
--- mail/ChangeLog	(revision 37297)
+++ mail/ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2009-02-23  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #572543
+
+	* em-popup.c: (emp_standard_menu_factory):
+	Always look for alternative apps for application/octet-stream.
+
 2009-02-11  Andre Klapper  <a9016009@gmx.de>
 
 	* em-folder-browser.c:
Index: mail/em-popup.c
===================================================================
--- mail/em-popup.c	(revision 37297)
+++ mail/em-popup.c	(working copy)
@@ -799,13 +799,14 @@ emp_standard_menu_factory(EPopup *emp, v
 		apps = g_app_info_get_all_for_type (cp ? cp : mime_type);
 		g_free (cp);
 
-		if (apps == NULL && strcmp (mime_type, "application/octet-stream") == 0) {
+		if (apps == NULL || strcmp (mime_type, "application/octet-stream") == 0) {
 			if (filename != NULL) {
 				gchar *name_type;
 
 				name_type = e_util_guess_mime_type (filename, FALSE);
 				cp = g_content_type_from_mime_type (name_type);
-				apps = g_app_info_get_all_for_type (cp ? cp : name_type);
+				/* show alternative apps first */
+				apps = g_list_concat (g_app_info_get_all_for_type (cp ? cp : name_type), apps);
 				g_free (cp);
 				g_free (name_type);
 			}
Index: calendar/gui/e-cal-popup.c
===================================================================
--- calendar/gui/e-cal-popup.c	(revision 37297)
+++ calendar/gui/e-cal-popup.c	(working copy)
@@ -401,13 +401,14 @@ ecalp_standard_menu_factory (EPopup *eca
 		apps = g_app_info_get_all_for_type (cp ? cp : mime_type);
 		g_free (cp);
 
-		if (apps == NULL && strcmp(mime_type, "application/octet-stream") == 0) {
+		if (apps == NULL || strcmp(mime_type, "application/octet-stream") == 0) {
 			if (filename) {
 				gchar *name_type;
 
 				name_type = e_util_guess_mime_type (filename, FALSE);
 				cp = g_content_type_from_mime_type (name_type);
-				apps = g_app_info_get_all_for_type (cp ? cp : name_type);
+				/* show alternative apps first */
+				apps = g_list_concat (g_app_info_get_all_for_type (cp ? cp : name_type), apps);
 				g_free (cp);
 				g_free (name_type);
 			}
Index: calendar/ChangeLog
===================================================================
--- calendar/ChangeLog	(revision 37297)
+++ calendar/ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2009-02-23  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #572543
+
+	* gui/e-cal-popup.c: (ecalp_standard_menu_factory):
+	Always look for alternative apps for application/octet-stream.
+
 2009-02-19  Matthew Barnes  <mbarnes@redhat.com>
 
 	** Fixes part of bug #572348
