if ( !wxEndsWithPathSeparator(gs_dirPath ) )
         gs_dirPath << wxFILE_SEP_PATH;
 
-    if (gs_dir)
-        delete gs_dir;
+    delete gs_dir; // can be NULL, this is ok
     gs_dir = new wxDir(gs_dirPath);
 
     if ( !gs_dir->IsOpened() )
 
 wxString wxFindNextFile()
 {
-    wxASSERT_MSG( gs_dir, wxT("You must call wxFindFirstFile before!") );
+    wxCHECK_MSG( gs_dir, "", "You must call wxFindFirstFile before!" );
 
     wxString result;
     gs_dir->GetNext(&result);
     wxChar buf[256];
     GetWindowsDirectory(buf, 256);
     return wxString(buf);
-#elif defined(__WXMAC__) && !defined(__WXOSX_IPHONE__)
+#elif defined(__WXMAC__) && wxOSX_USE_CARBON
     return wxMacFindFolder(kOnSystemDisk, 'macs', false);
 #else
     return wxEmptyString;
 
     HANDLE h = ::CreateFile
                  (
-                    path.c_str(),
+                    path.t_str(),
                     access,
                     FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
                     NULL,