class wxMimeTextFile
 {
 public:
-    wxMimeTextFile() 
+    wxMimeTextFile()
     {
     }
-    
+
     wxMimeTextFile(const wxString& fname)
     {
        m_fname = fname;
     }
-    
+
     bool Open()
     {
        wxFFile file( m_fname );
        if (!file.IsOpened())
           return false;
-          
+
        size_t size = file.Length();
        wxCharBuffer buffer( size );
        file.Read( (void*) (const char*) buffer, size );
-       
+
        // Check for valid UTF-8 here?
        wxString all = wxString::FromUTF8( buffer, size );
-       
+
        wxStringTokenizer tok( all, "\n" );
        while (tok.HasMoreTokens())
        {
        }
        return true;
     }
-    
+
     unsigned int GetLineCount() const { return m_text.GetCount(); }
     wxString &GetLine( unsigned int line ) { return m_text[line]; }
 
         wxString sTmp = GetLine(i).AfterFirst(wxT('='));
         return sTmp;
     }
-    
+
 private:
     wxArrayString m_text;
     wxString m_fname;
     wxMimeTextFile file(filename);
     if ( !file.Open() )
         return;
- 
+
     // Here, only type 'Application' should be considered.
     int nIndex = file.pIndexOf( "Type=" );
     if (nIndex != wxNOT_FOUND && file.GetCmd(nIndex) != "application")
         cont = dir.GetNext(&filename);
     }
 
-#if 0 
+#if 0
     // RR: I'm not sure this makes any sense. On my system we'll just
     //     scan the YAST2 and other useless directories
-    
+
     // Look recursively into subdirs
     cont = dir.GetFirst(&filename, wxEmptyString, wxDIR_DIRS);
     while (cont)
 
 void wxMimeTypesManagerImpl::LoadXDGGlobs(const wxString& filename)
 {
+    if ( !wxFileName::FileExists(filename) )
+        return;
+
     wxLogTrace(TRACE_MIME, wxT("loading XDG globs file from %s"), filename.c_str());
 
     wxMimeTextFile file(filename);
        ext.Remove( 0, 2 );
        wxArrayString exts;
        exts.Add( ext );
-       
+
        AddToMimeData(mime, wxEmptyString, NULL, exts, wxEmptyString, true );
     }
 }
     {
         // set the flag first to prevent recursion
         m_initialized = true;
-        
+
         wxString wm = wxTheApp->GetTraits()->GetDesktopEnvironment();
-        
+
         if (wm == wxT("KDE"))
             Initialize( wxMAILCAP_KDE  );
         else if (wm == wxT("GNOME"))
            xdgDataDirs += ':';
            xdgDataDirs += sExtraDir;
         }
-        
+
         wxArrayString dirs;
         wxStringTokenizer tokenizer(xdgDataDirs, ":");
         while ( tokenizer.HasMoreTokens() )
                     {
                         if (textfile.GetLine(i).Find(wxT("=")) != wxNOT_FOUND)
                         {
-                            wxString mimeType = textfile.GetVerb(i);
                             wxString desktopFile = textfile.GetCmd(i);
-                            
+
                             if (deskTopFilesSeen.Index(desktopFile) == wxNOT_FOUND)
                             {
                                 deskTopFilesSeen.Add(desktopFile);
                                     if (desktopPath.Last() != '/') desktopPath += '/';
                                     desktopPath += "applications/";
                                     desktopPath += desktopFile;
-                                    
+
                                     if (wxFileExists(desktopPath))
                                         LoadXDGApp(desktopPath);
                                 }
 
     // first look for an exact match
     int index = m_aTypes.Index(mimetype);
-    
+
     if ( index != wxNOT_FOUND )
     {
         fileType = new wxFileType;