Here's my work-around I use in AMT... Func _FileOpenDialog_Ex($sTitle, $sInitDir, $sFilter, $iOptions = 0, $sDefaultName = "", $hWnd = 0)     #cs         https://groups.google.com/forum/?hl=en&fromgroups=#!topic/microsoft.public.vc.mfc/HafQr4gIRY0         The problem is that GetOpenFileName changes the current directory to the         last browsed one. The current directory and any of its parents cannot be         deleted.     #ce     Local $sWorkingDir = @WorkingDir     Local $sFilename = FileOpenDialog($sTitle, $sInitDir, $sFilter, $iOptions, $sDefaultName, $hWnd)     Local $iError = @error     FileChangeDir($sWorkingDir)     Return SetError($iError, 0, $sFilename) EndFunc   ;==>_FileOpenDialog_Ex