diff --git a/plugins/thunar-uca/thunar-uca-model.c b/plugins/thunar-uca/thunar-uca-model.c
index c57a6f3ebe193b948f1fa13cddac02af48c29e18..5e24b7a76f1e51ac80b7810e1273bb38123a14fe 100644
--- a/plugins/thunar-uca/thunar-uca-model.c
+++ b/plugins/thunar-uca/thunar-uca-model.c
@@ -86,6 +86,7 @@ typedef enum
   PARSER_OTHER_FILES,
   PARSER_TEXT_FILES,
   PARSER_VIDEO_FILES,
+  PARSER_UNKNOWN_ELEMENT,
 } ParserState;
 
 
@@ -652,7 +653,7 @@ start_element_handler (GMarkupParseContext *context,
       if (strcmp (element_name, "actions") == 0)
         xfce_stack_push (parser->stack, PARSER_ACTIONS);
       else
-        goto unknown_element;
+        xfce_stack_push (parser->stack, PARSER_UNKNOWN_ELEMENT);
       break;
 
     case PARSER_ACTIONS:
@@ -671,7 +672,7 @@ start_element_handler (GMarkupParseContext *context,
           xfce_stack_push (parser->stack, PARSER_ACTION);
         }
       else
-        goto unknown_element;
+        xfce_stack_push (parser->stack, PARSER_UNKNOWN_ELEMENT);
       break;
 
     case PARSER_ACTION:
@@ -789,18 +790,12 @@ start_element_handler (GMarkupParseContext *context,
           xfce_stack_push (parser->stack, PARSER_VIDEO_FILES);
         }
       else
-        goto unknown_element;
+        xfce_stack_push (parser->stack, PARSER_UNKNOWN_ELEMENT);
       break;
 
     default:
-      goto unknown_element;
+      xfce_stack_push (parser->stack, PARSER_UNKNOWN_ELEMENT);
     }
-
-  return;
-
-unknown_element:
-  g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
-               _("Unknown element <%s>"), element_name);
 }
 
 
@@ -914,6 +909,10 @@ end_element_handler (GMarkupParseContext *context,
         goto unknown_element;
       break;
 
+    case PARSER_UNKNOWN_ELEMENT:
+      g_warning ("Unknown element ignored: <%s>", element_name);
+      break;
+
     default:
       goto unknown_element;
     }