diff --git a/po/ar.po b/po/ar.po
index b812f5e..4e2a621 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -8089,6 +8089,11 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "معلومات"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/bg.po b/po/bg.po
index fa6258d..fb388a6 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8266,6 +8266,11 @@
 msgid "Wine Explorer"
 msgstr "&Разгледай"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "LAN връзка"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/ca.po b/po/ca.po
index 5d306e5..0df1498 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -8012,6 +8012,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/cs.po b/po/cs.po
index 7f230e7..d1a4dcc8 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8645,6 +8645,11 @@
 msgid "Wine Explorer"
 msgstr "P&rozkoumat"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Volby"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/da.po b/po/da.po
index 17309a2..bee9753 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8669,6 +8669,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Placering"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/de.po b/po/de.po
index c6e2ac0..5cb69d8 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8658,6 +8658,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Ort"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/el.po b/po/el.po
index 412cf0c..4abd6c8 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8136,6 +8136,11 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Επιλογές"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/en.po b/po/en.po
index 9493c23..e54e248 100644
--- a/po/en.po
+++ b/po/en.po
@@ -8313,6 +8313,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Location"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/en_US.po b/po/en_US.po
index 17b165c..cbdb264 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -8405,6 +8405,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Location"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "Usage: hostname\n"
diff --git a/po/eo.po b/po/eo.po
index 5c7a8f6..260e673 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -8257,6 +8257,11 @@
 msgid "Wine Explorer"
 msgstr "E&sploru"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "LAN Interkonekto"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/es.po b/po/es.po
index 1f096c1..4d4e9a5 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8847,6 +8847,11 @@
 msgid "Wine Explorer"
 msgstr "Internet Explorer de Wine"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Ubicación"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/fa.po b/po/fa.po
index 60af20d..8d13612 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -8091,6 +8091,11 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "اطلاعات"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/fi.po b/po/fi.po
index 366610a..9563afa 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -8338,6 +8338,11 @@
 msgid "Wine Explorer"
 msgstr "&Selaa"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Sijainti"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 6fd68b4..aff6a75 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -8486,6 +8486,11 @@
 msgid "Wine Explorer"
 msgstr "Explorateur de Wine"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Emplacement"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "Usage : hostname\n"
diff --git a/po/he.po b/po/he.po
index d461383..1f41606 100644
--- a/po/he.po
+++ b/po/he.po
@@ -8507,6 +8507,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "מיקום"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/hi.po b/po/hi.po
index dd4fe80..cba84b1 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -8009,6 +8009,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/hu.po b/po/hu.po
index 45cdc85..b50d96e 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8532,6 +8532,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Hely"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/it.po b/po/it.po
index 8ec758a..4e5c140 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8752,6 +8752,11 @@
 msgid "Wine Explorer"
 msgstr "Internet Explorer di Wine"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Locazione"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/ja.po b/po/ja.po
index 436a931..a892aa7 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8402,6 +8402,11 @@
 msgid "Wine Explorer"
 msgstr "Wine エクスプローラ"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "場所"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "使い方: hostname\n"
diff --git a/po/ko.po b/po/ko.po
index 8d64369..640b9c8 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -8374,6 +8374,11 @@
 msgid "Wine Explorer"
 msgstr "Wine 탐색기"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "랜 연결"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "사용법:hostname\n"
diff --git a/po/lt.po b/po/lt.po
index 76d5996..f760a63 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -8420,6 +8420,11 @@
 msgid "Wine Explorer"
 msgstr "Wine naršyklė"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Vieta"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "Naudojimas: hostname\n"
diff --git a/po/ml.po b/po/ml.po
index f556691..f3cdd83 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -8009,6 +8009,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/nb_NO.po b/po/nb_NO.po
index 1877d16..494698a 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -8674,6 +8674,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Plassering"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/nl.po b/po/nl.po
index 349dfd5..26d6023 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -8560,6 +8560,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Verkenner"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Locatie"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/or.po b/po/or.po
index 0ca1274..e14bc52 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8009,6 +8009,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/pa.po b/po/pa.po
index b85cdc5..b03e52f 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -8009,6 +8009,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/pl.po b/po/pl.po
index c89a475..c574d7f 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8424,6 +8424,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Położenie"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/pt_BR.po b/po/pt_BR.po
index ec1ba87..a80affa 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8699,6 +8699,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Localização"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 1eeb709..a1401ba 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -8752,6 +8752,11 @@
 msgid "Wine Explorer"
 msgstr "Explorador de Internet Wine"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Localização"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/rm.po b/po/rm.po
index ce20637..e51d93a 100644
--- a/po/rm.po
+++ b/po/rm.po
@@ -8060,6 +8060,11 @@
 msgid "Wine Explorer"
 msgstr "Wine ag�d"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "&Options"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/ro.po b/po/ro.po
index 04c7a7c..d083f5a 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -8985,6 +8985,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Locație"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/ru.po b/po/ru.po
index 6d6a80c..68104f8 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8415,6 +8415,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Размещение"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "Использование: hostname\n"
diff --git a/po/sk.po b/po/sk.po
index ac10f59..6c57365 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8293,6 +8293,11 @@
 msgid "Wine Explorer"
 msgstr "E&xplore"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Informácie"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/sl.po b/po/sl.po
index 630978e..9f04787 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -2984,8 +2984,7 @@
 
 #: winerror.mc:851
 msgid "Nesting LoadModule calls not allowed\n"
-msgstr ""
-"Klici gnezdenega modula nalaganja niso dovoljeni\n"
+msgstr "Klici gnezdenega modula nalaganja niso dovoljeni\n"
 
 #: winerror.mc:856
 msgid "Machine type mismatch\n"
@@ -3061,8 +3060,7 @@
 
 #: winerror.mc:946
 msgid "Too many posts to semaphore\n"
-msgstr ""
-"Preveč objav na semaforju\n"
+msgstr "Preveč objav na semaforju\n"
 
 #: winerror.mc:951
 msgid "Read/WriteProcessMemory partially completed\n"
@@ -5058,18 +5056,15 @@
 
 #: winerror.mc:3446
 msgid "Can't logon with interdomain trust account\n"
-msgstr ""
-"Ni se mogoče prijaviti z računom meddomenskega zaupanja\n"
+msgstr "Ni se mogoče prijaviti z računom meddomenskega zaupanja\n"
 
 #: winerror.mc:3451
 msgid "Can't logon with workstation trust account\n"
-msgstr ""
-"Ni se mogoče prijaviti z računom zaupanja delovne postaja\n"
+msgstr "Ni se mogoče prijaviti z računom zaupanja delovne postaja\n"
 
 #: winerror.mc:3456
 msgid "Can't logon with server trust account\n"
-msgstr ""
-"Ni se mogoče prijaviti z računom zaupanja strežnika\n"
+msgstr "Ni se mogoče prijaviti z računom zaupanja strežnika\n"
 
 #: winerror.mc:3461
 msgid "Domain trust information inconsistent\n"
@@ -8449,6 +8444,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Mesto"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/sr_RS@cyrillic.po b/po/sr_RS@cyrillic.po
index 7a5af82..cf15c34 100644
--- a/po/sr_RS@cyrillic.po
+++ b/po/sr_RS@cyrillic.po
@@ -8399,6 +8399,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Локација"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/sr_RS@latin.po b/po/sr_RS@latin.po
index 4be5f25..1cbe1ae 100644
--- a/po/sr_RS@latin.po
+++ b/po/sr_RS@latin.po
@@ -8453,6 +8453,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Lokacija"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 5e7172b..1902e03 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8422,6 +8422,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Plats"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/te.po b/po/te.po
index ce8996a..8832f0b 100644
--- a/po/te.po
+++ b/po/te.po
@@ -8009,6 +8009,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/th.po b/po/th.po
index 2833692..4538d20 100644
--- a/po/th.po
+++ b/po/th.po
@@ -8145,6 +8145,11 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "รายละเอียด"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/tr.po b/po/tr.po
index 6e008d0..7b132e8 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8793,6 +8793,11 @@
 msgid "Wine Explorer"
 msgstr "A&raştır"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "LAN Bağlantısı"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/uk.po b/po/uk.po
index 2bf6c90..0dc53aa 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8401,6 +8401,11 @@
 msgid "Wine Explorer"
 msgstr "Оглядач Інтернету Wine"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Розміщення"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr "Використання: ім'я_хосту\n"
diff --git a/po/wa.po b/po/wa.po
index a7b8a6e..1411079 100644
--- a/po/wa.po
+++ b/po/wa.po
@@ -8109,6 +8109,11 @@
 msgid "Wine Explorer"
 msgstr "E&xplore"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "Informåcion"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/wine.pot b/po/wine.pot
index ca987ed..c4a251f 100644
--- a/po/wine.pot
+++ b/po/wine.pot
@@ -7985,6 +7985,10 @@
 msgid "Wine Explorer"
 msgstr ""
 
+#: explorer.rc:29
+msgid "Location:"
+msgstr ""
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index fd0765f..42ad9f0 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -8386,6 +8386,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "位置"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 7a1a597..adf576b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -8441,6 +8441,11 @@
 msgid "Wine Explorer"
 msgstr "Wine Internet Explorer"
 
+#: explorer.rc:29
+#, fuzzy
+msgid "Location:"
+msgstr "區域網路連線"
+
 #: hostname.rc:27
 msgid "Usage: hostname\n"
 msgstr ""
diff --git a/programs/explorer/explorer.c b/programs/explorer/explorer.c
index bcdfcff..0cb00a4 100644
--- a/programs/explorer/explorer.c
+++ b/programs/explorer/explorer.c
@@ -39,12 +39,14 @@
 #define EXPLORER_INFO_INDEX 0
 
 #define NAV_TOOLBAR_HEIGHT 30
+#define PATHBOX_HEIGHT 24
 
 #define DEFAULT_WIDTH 640
 #define DEFAULT_HEIGHT 480
 
 
 static const WCHAR EXPLORER_CLASS[] = {'W','I','N','E','_','E','X','P','L','O','R','E','R','\0'};
+static const WCHAR PATH_BOX_NAME[] = {'\0'};
 
 HINSTANCE explorer_hInstance;
 
@@ -57,8 +59,9 @@
 typedef struct
 {
     IExplorerBrowser *browser;
-    HWND main_window;
+    HWND main_window,path_box;
     INT rebar_height;
+    LPCITEMIDLIST pidl;
 } explorer_info;
 
 enum
@@ -66,14 +69,100 @@
     BACK_BUTTON,FORWARD_BUTTON,UP_BUTTON
 };
 
+typedef struct
+{
+    IExplorerBrowserEvents IExplorerBrowserEvents_iface;
+    explorer_info* info;
+    LONG ref;
+} IExplorerBrowserEventsImpl;
+
+static IExplorerBrowserEventsImpl *impl_from_IExplorerBrowserEvents(IExplorerBrowserEvents *iface)
+{
+    return CONTAINING_RECORD(iface, IExplorerBrowserEventsImpl, IExplorerBrowserEvents_iface);
+}
+
+static HRESULT WINAPI IExplorerBrowserEventsImpl_fnQueryInterface(IExplorerBrowserEvents *iface, REFIID riid, void **ppvObject)
+{
+    return E_NOINTERFACE;
+}
+
+static ULONG WINAPI IExplorerBrowserEventsImpl_fnAddRef(IExplorerBrowserEvents *iface)
+{
+    IExplorerBrowserEventsImpl *This = impl_from_IExplorerBrowserEvents(iface);
+    return InterlockedIncrement(&This->ref);
+}
+
+static ULONG WINAPI IExplorerBrowserEventsImpl_fnRelease(IExplorerBrowserEvents *iface)
+{
+    IExplorerBrowserEventsImpl *This = impl_from_IExplorerBrowserEvents(iface);
+    ULONG ref = InterlockedDecrement(&This->ref);
+    if(!ref)
+        HeapFree(GetProcessHeap(),0,This);
+    return ref;
+}
+
+static void update_path_box(explorer_info *info)
+{
+    WCHAR path[MAX_PATH];
+    SHGetPathFromIDListW(info->pidl,path);
+    SetWindowTextW(info->path_box,path);
+}
+
+static HRESULT WINAPI IExplorerBrowserEventsImpl_fnOnNavigationComplete(IExplorerBrowserEvents *iface, PCIDLIST_ABSOLUTE pidl)
+{
+    IExplorerBrowserEventsImpl *This = impl_from_IExplorerBrowserEvents(iface);
+    This->info->pidl = pidl;
+    update_path_box(This->info);
+    return S_OK;
+}
+
+static HRESULT WINAPI IExplorerBrowserEventsImpl_fnOnNavigationFailed(IExplorerBrowserEvents *iface, PCIDLIST_ABSOLUTE pidl)
+{
+    return S_OK;
+}
+
+static HRESULT WINAPI IExplorerBrowserEventsImpl_fnOnNavigationPending(IExplorerBrowserEvents *iface, PCIDLIST_ABSOLUTE pidl)
+{
+    return S_OK;
+}
+
+static HRESULT WINAPI IExplorerBrowserEventsImpl_fnOnViewCreated(IExplorerBrowserEvents *iface, IShellView *psv)
+{
+    return S_OK;
+}
+
+static IExplorerBrowserEventsVtbl vt_IExplorerBrowserEvents =
+{
+    IExplorerBrowserEventsImpl_fnQueryInterface,
+    IExplorerBrowserEventsImpl_fnAddRef,
+    IExplorerBrowserEventsImpl_fnRelease,
+    IExplorerBrowserEventsImpl_fnOnNavigationPending,
+    IExplorerBrowserEventsImpl_fnOnViewCreated,
+    IExplorerBrowserEventsImpl_fnOnNavigationComplete,
+    IExplorerBrowserEventsImpl_fnOnNavigationFailed
+};
+
+static IExplorerBrowserEvents *make_explorer_events(explorer_info *info)
+{
+    IExplorerBrowserEventsImpl *ret
+        = HeapAlloc(GetProcessHeap(), 0, sizeof(IExplorerBrowserEventsImpl));
+    ret->IExplorerBrowserEvents_iface.lpVtbl = &vt_IExplorerBrowserEvents;
+    ret->info = info;
+    IExplorerBrowserEvents_AddRef(&ret->IExplorerBrowserEvents_iface);
+    return &ret->IExplorerBrowserEvents_iface;
+}
+
 static void make_explorer_window(IShellFolder* startFolder)
 {
     RECT explorerRect;
     HWND rebar,nav_toolbar;
     FOLDERSETTINGS fs;
+    IExplorerBrowserEvents *events;
     explorer_info *info;
     HRESULT hres;
+    DWORD cookie;
     WCHAR explorer_title[100];
+    WCHAR pathbox_label[50];
     TBADDBITMAP bitmap_info;
     TBBUTTON nav_buttons[3];
     int hist_offset,view_offset;
@@ -81,6 +170,8 @@
     memset(nav_buttons,0,sizeof(nav_buttons));
     LoadStringW(explorer_hInstance,IDS_EXPLORER_TITLE,explorer_title,
                 sizeof(explorer_title)/sizeof(WCHAR));
+    LoadStringW(explorer_hInstance,IDS_PATHBOX_LABEL,pathbox_label,
+                sizeof(pathbox_label)/sizeof(WCHAR));
     info = HeapAlloc(GetProcessHeap(),0,sizeof(explorer_info));
     if(!info)
     {
@@ -151,10 +242,26 @@
     band_info.cyMinChild=NAV_TOOLBAR_HEIGHT;
     band_info.cxMinChild=0;
     SendMessageW(rebar,RB_INSERTBANDW,-1,(LPARAM)&band_info);
+    info->path_box = CreateWindowW(WC_COMBOBOXEXW,PATH_BOX_NAME,
+                                   WS_CHILD | WS_VISIBLE | CBS_DROPDOWN,
+                                   0,0,DEFAULT_WIDTH,PATHBOX_HEIGHT,rebar,NULL,
+                                   explorer_hInstance,NULL);
+    band_info.cyChild=PATHBOX_HEIGHT;
+    band_info.cx=0;
+    band_info.cyMinChild=PATHBOX_HEIGHT;
+    band_info.cxMinChild=0;
+    band_info.fMask|=RBBIM_TEXT;
+    band_info.lpText=pathbox_label;
+    band_info.fStyle|=RBBS_BREAK;
+    band_info.hwndChild=info->path_box;
+    SendMessageW(rebar,RB_INSERTBANDW,-1,(LPARAM)&band_info);
+    events = make_explorer_events(info);
+    IExplorerBrowser_Advise(info->browser,events,&cookie);
     IExplorerBrowser_BrowseToObject(info->browser,(IUnknown*)startFolder,
                                     SBSP_ABSOLUTE);
     ShowWindow(info->main_window,SW_SHOWDEFAULT);
     UpdateWindow(info->main_window);
+    IExplorerBrowserEvents_Release(events);
 }
 
 static void update_window_size(explorer_info *info, int height, int width)
@@ -173,6 +280,37 @@
     ExitProcess(code);
 }
 
+static LRESULT explorer_on_end_edit(explorer_info *info,NMCBEENDEDITW *edit_info)
+{
+    LPITEMIDLIST pidl = NULL;
+
+    WINE_TRACE("iWhy=%x\n",edit_info->iWhy);
+    switch(edit_info->iWhy)
+    {
+    case CBENF_RETURN:
+        {
+            WCHAR path[MAX_PATH];
+            HWND edit_ctrl = (HWND)SendMessageW(edit_info->hdr.hwndFrom,
+                                                CBEM_GETEDITCONTROL,0,0);
+            *((WORD*)path)=MAX_PATH;
+            SendMessageW(edit_ctrl,EM_GETLINE,0,(LPARAM)path);
+            pidl = ILCreateFromPathW(path);
+            break;
+        }
+    case CBENF_ESCAPE:
+        /*make sure the that the path box resets*/
+        update_path_box(info);
+        return 0;
+    default:
+        return 0;
+    }
+    if(pidl)
+        IExplorerBrowser_BrowseToIDList(info->browser,pidl,SBSP_ABSOLUTE);
+    if(edit_info->iWhy==CBENF_RETURN)
+        ILFree(pidl);
+    return 0;
+}
+
 static LRESULT update_rebar_size(explorer_info* info,NMRBAUTOSIZE *size_info)
 {
     RECT new_rect;
@@ -192,6 +330,8 @@
     WINE_TRACE("code=%i\n",notification->code);
     switch(notification->code)
     {
+    case CBEN_ENDEDITW:
+        return explorer_on_end_edit(info,(NMCBEENDEDITW*)notification);
     case RBN_AUTOSIZE:
         return update_rebar_size(info,(NMRBAUTOSIZE*)notification);
     default:
@@ -425,7 +565,7 @@
         ExitProcess(EXIT_FAILURE);
     }
     init_info.dwSize = sizeof(INITCOMMONCONTROLSEX);
-    init_info.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
+    init_info.dwICC = ICC_USEREX_CLASSES | ICC_BAR_CLASSES | ICC_COOL_CLASSES;
     if(!InitCommonControlsEx(&init_info))
     {
         WINE_ERR("Could not initialize Comctl\n");
diff --git a/programs/explorer/explorer.rc b/programs/explorer/explorer.rc
index acac335..86d7ad0 100644
--- a/programs/explorer/explorer.rc
+++ b/programs/explorer/explorer.rc
@@ -25,5 +25,6 @@
 
 STRINGTABLE
 {
-	IDS_EXPLORER_TITLE	"Wine Explorer"
+    IDS_EXPLORER_TITLE  "Wine Explorer"
+    IDS_PATHBOX_LABEL   "Location:"
 }
diff --git a/programs/explorer/resource.h b/programs/explorer/resource.h
index f3813b0..dc0e8d1 100644
--- a/programs/explorer/resource.h
+++ b/programs/explorer/resource.h
@@ -22,5 +22,6 @@
 #define __WINE_EXPLORER_RESOURCE_H
 
 #define IDS_EXPLORER_TITLE 1
+#define IDS_PATHBOX_LABEL 2
 
 #endif
