Index: dll/win32/browseui/addressband.cpp
===================================================================
--- dll/win32/browseui/addressband.cpp	(revision 69172)
+++ dll/win32/browseui/addressband.cpp	(working copy)
@@ -34,8 +34,6 @@
 ****Add command handler for show/hide Go button to OnWinEvent
 ****Add tooltip notify handler
   **Properly implement GetBandInfo
-  **Add support for showing/hiding Go button
-  **Fix so Go button will be shown/hidden properly on load
   **Add correct text to Go button
   **Implement TranslateAcceleratorIO
     Implement Exec
@@ -136,7 +134,7 @@
     // create combo box ex
     combobox = CreateWindowEx(WS_EX_TOOLWINDOW, WC_COMBOBOXEXW, NULL, WS_CHILD | WS_VISIBLE |
         WS_CLIPCHILDREN | WS_TABSTOP | CCS_NODIVIDER | CCS_NOMOVEY | CBS_OWNERDRAWFIXED,
-                    0, 0, 500, 250, parentWindow, (HMENU)0xa205, _AtlBaseModule.GetModuleInstance(), 0);
+                    0, 0, 500, 250, parentWindow, (HMENU)IDM_TOOLBARS_ADDRESSBAR, _AtlBaseModule.GetModuleInstance(), 0);
     if (combobox == NULL)
         return E_FAIL;
     SubclassWindow(combobox);
@@ -170,9 +168,7 @@
     if (FAILED_UNEXPECTEDLY(hResult))
         return hResult;
 
-    // TODO: properly initialize this from registry
-    fGoButtonShown = true;
-
+    fGoButtonShown = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", L"ShowGoButton", FALSE, TRUE);
     if (fGoButtonShown)
     {
         const TBBUTTON buttonInfo [] = { { 0, 1, TBSTATE_ENABLED, 0 } };
@@ -333,6 +329,7 @@
 {
     CComPtr<IWinEventHandler>               winEventHandler;
     HRESULT                                 hResult;
+    RECT                                    rect;
 
     *theResult = 0;
 
@@ -343,8 +340,11 @@
         case WM_COMMAND:
             if (wParam == IDM_TOOLBARS_GOBUTTON)
             {
-                // toggle whether the Go button is displayed
-                // setting is Yes or No, stored in key "Software\Microsoft\Internet Explorer\Main" in value ShowGoButton
+                fGoButtonShown = !SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", L"ShowGoButton", FALSE, TRUE);
+                SHRegSetUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", L"ShowGoButton", REG_SZ, fGoButtonShown ? (LPVOID)L"yes" : (LPVOID)L"no", fGoButtonShown ? 8 : 6, SHREGSET_FORCE_HKCU);
+                ::ShowWindow(fGoButton,fGoButtonShown ? SW_HIDE : SW_SHOW);
+                GetWindowRect(&rect);
+                SendMessage(m_hWnd,WM_SIZE,0,MAKELPARAM(rect.right-rect.left,rect.bottom-rect.top));
                 // broadcast change notification to all explorer windows
             }
             break;
Index: base/applications/iexplore/iexplore.inf
===================================================================
--- base/applications/iexplore/iexplore.inf	(revision 69172)
+++ base/applications/iexplore/iexplore.inf	(working copy)
@@ -23,6 +23,7 @@
 HKCR,"CLSID\%CLSID_Internet%\ShellFolder",,2,"0x24"
 
 [Settings.Reg]
+HKCU,"Software\Microsoft\Internet Explorer\Main","ShowGoButton",2,"yes"
 #HKCU,"Software\Microsoft\Internet Explorer\Main","Start Page",2,"http://www.winehq.org"
 HKCU,"Software\Microsoft\Internet Explorer\Main","Start Page",2,"http://www.reactos.org"
 HKCU,"Software\Microsoft\Internet Explorer\Main","Search Page",2,"http://www.google.com"
Index: dll/win32/browseui/internettoolbar.cpp
===================================================================
--- dll/win32/browseui/internettoolbar.cpp	(revision 69172)
+++ dll/win32/browseui/internettoolbar.cpp	(working copy)
@@ -1663,6 +1663,7 @@
     RBHITTESTINFO                           hitTestInfo;
     REBARBANDINFOW                          rebarBandInfo;
     int                                     bandID;
+    BOOL                                    goButtonChecked;
 
     clickLocation.x = LOWORD(lParam);
     clickLocation.y = HIWORD(lParam);
@@ -1712,6 +1713,8 @@
     SHCheckMenuItem(contextMenu, IDM_TOOLBARS_LINKSBAR, FALSE);
     SHCheckMenuItem(contextMenu, IDM_TOOLBARS_CUSTOMIZE, FALSE);
     SHCheckMenuItem(contextMenu, IDM_TOOLBARS_LOCKTOOLBARS, fLocked);
+    goButtonChecked = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", L"ShowGoButton", FALSE, TRUE);
+    SHCheckMenuItem(contextMenu, IDM_TOOLBARS_GOBUTTON, goButtonChecked);
 
     // TODO: use GetSystemMetrics(SM_MENUDROPALIGNMENT) to determine menu alignment
     command = TrackPopupMenu(contextMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,
@@ -1730,6 +1733,9 @@
         case IDM_TOOLBARS_CUSTOMIZE:    // customize
             SendMessage(fToolbarWindow, TB_CUSTOMIZE, 0, 0);
             break;
+        case IDM_TOOLBARS_GOBUTTON:
+            SendMessage(fNavigationWindow, WM_COMMAND, IDM_TOOLBARS_GOBUTTON, 0);
+            break;
     }
 
     DestroyMenu(contextMenuBar);
