diff --git a/dlls/commdlg/filedlg95.c b/dlls/commdlg/filedlg95.c
index 52de8469c633836e779d064f22bf184ad234a75c..57ecfad18c3316836f063ab5b5da1accbdf86511 100644
--- a/dlls/commdlg/filedlg95.c
+++ b/dlls/commdlg/filedlg95.c
@@ -1718,8 +1718,7 @@ HRESULT GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST pidl,DWORD dwFlags,LPSTR lpstrF
                                                      dwFlags, 
                                                      &str)))
   {
-    StrRetToStrN(lpstrFileName, MAX_PATH, &str, pidl);
-    return NOERROR;
+    return StrRetToStrNA(lpstrFileName, MAX_PATH, &str, pidl);
   }
   return E_FAIL;
 }
@@ -1782,7 +1781,8 @@ LPITEMIDLIST GetPidlFromName(IShellFolder *psf,LPCSTR lpcstrFileName)
   LPITEMIDLIST pidl;
   ULONG ulEaten;
   wchar_t lpwstrDirName[MAX_PATH];
-  
+
+  TRACE("sf=%p file=%s\n", psf, lpcstrFileName);
 
   if(!lpcstrFileName)
     return NULL;
diff --git a/dlls/commdlg/filedlgbrowser.c b/dlls/commdlg/filedlgbrowser.c
index 890cc2979848a943e67e1a7b05e8f91f5ddede9a..51b3fd268617ffcacb8b2b378ad567a1481414af 100644
--- a/dlls/commdlg/filedlgbrowser.c
+++ b/dlls/commdlg/filedlgbrowser.c
@@ -8,6 +8,7 @@
 #include "unknwn.h"
 #include "filedlgbrowser.h"
 #include "winuser.h"
+#include "heap.h"
 #include "commctrl.h"
 #include "wine/obj_dataobject.h"
 #include "debugtools.h"
@@ -674,7 +675,7 @@ HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser *
     FileOpenDlgInfos *fodInfos;
     ULONG ulAttr;
     STRRET str;
-    char szPath[MAX_PATH];
+    WCHAR szPathW[MAX_PATH];
 
     _ICOM_THIS_FromICommDlgBrowser(IShellBrowserImpl,iface);
 
@@ -696,9 +697,16 @@ HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser *
     if(!fodInfos->ShellInfos.lpstrCurrentFilter ||
        !lstrlenW(fodInfos->ShellInfos.lpstrCurrentFilter))
         return S_OK;
-    IShellFolder_GetDisplayNameOf(fodInfos->Shell.FOIShellFolder, pidl, SHGDN_FORPARSING, &str);
-    StrRetToStrN(szPath, MAX_PATH, &str, pidl);
-    return PathMatchSpecW((LPWSTR)szPath, fodInfos->ShellInfos.lpstrCurrentFilter)? S_OK : S_FALSE;
+
+    if (SUCCEEDED(IShellFolder_GetDisplayNameOf(fodInfos->Shell.FOIShellFolder, pidl, SHGDN_FORPARSING, &str)))
+    { if (SUCCEEDED(StrRetToStrNW(szPathW, MAX_PATH, &str, pidl)))
+      {
+        if (PathMatchSpecW(szPathW, fodInfos->ShellInfos.lpstrCurrentFilter))
+          return S_OK;
+      }
+    }
+    return S_FALSE;
+
 }
 
 /**************************************************************************
@@ -724,7 +732,7 @@ HRESULT IShellBrowserImpl_ICommDlgBrowser_OnSelChange(ICommDlgBrowser *iface, IS
         if (!ulAttr)
         {
             if(SUCCEEDED(hRes = GetName(fodInfos->Shell.FOIShellFolder,pidl,SHGDN_NORMAL,lpstrFileName)))
-                SetWindowTextW(fodInfos->DlgInfos.hwndFileName,(LPWSTR)lpstrFileName);
+                SetWindowTextA(fodInfos->DlgInfos.hwndFileName,lpstrFileName);
         }
 
         SHFree((LPVOID)pidl);
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 45a00471a4344a53cdc9d5f830cc2e0137f268ed..5b20c0f254479bc7f32efae46df5f0ca43453573 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -89,7 +89,8 @@ static BOOL GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST lpi, DWORD dwFlags, LPSTR l
 
 	TRACE("%p %p %lx %p\n", lpsf, lpi, dwFlags, lpFriendlyName);
 	if (SUCCEEDED(IShellFolder_GetDisplayNameOf(lpsf, lpi, dwFlags, &str)))
-	{ bSuccess = StrRetToStrN (lpFriendlyName, MAX_PATH, &str, lpi);
+	{
+	  bSuccess = StrRetToStrNA (lpFriendlyName, MAX_PATH, &str, lpi);
 	}
 	else
 	  bSuccess = FALSE;