diff --git a/controls/desktop.c b/controls/desktop.c
index 462625f..c170f2c 100644
--- a/controls/desktop.c
+++ b/controls/desktop.c
@@ -22,7 +22,7 @@
 /***********************************************************************
  *		DESKTOP_IsSingleWindow
  */
-BOOL DESKTOP_IsSingleWindow()
+BOOL DESKTOP_IsSingleWindow(void)
 {
   BOOL retvalue;
   DESKTOP *pDesktop = (DESKTOP *) WIN_GetDesktop()->wExtra;
diff --git a/controls/edit.c b/controls/edit.c
index 33fe741..f9debfa 100644
--- a/controls/edit.c
+++ b/controls/edit.c
@@ -154,11 +154,7 @@
 static inline void		EDIT_EM_EmptyUndoBuffer(WND *wnd, EDITSTATE *es);
 static inline void		EDIT_WM_Clear(WND *wnd, EDITSTATE *es);
 static inline void		EDIT_WM_Cut(WND *wnd, EDITSTATE *es);
-/*
- *	This is the only exported function
- */
-LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
-                            WPARAM wParam, LPARAM lParam );
+
 /*
  *	Helper functions only valid for one type of control
  */
diff --git a/controls/menu.c b/controls/menu.c
index e9ac2d9..5b8d382 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -295,7 +295,7 @@
  *
  * Return the locked pointer pTopPopupWnd.
  */
-WND *MENU_GetTopPopupWnd()
+static WND *MENU_GetTopPopupWnd()
 {
     return WIN_LockWndPtr(pTopPopupWnd);
 }
@@ -304,7 +304,7 @@
  *
  * Realease the locked pointer pTopPopupWnd.
  */
-void MENU_ReleaseTopPopupWnd()
+static void MENU_ReleaseTopPopupWnd()
 {
     WIN_ReleaseWndPtr(pTopPopupWnd);
 }
@@ -313,7 +313,7 @@
  *
  * Destroy the locked pointer pTopPopupWnd.
  */
-void MENU_DestroyTopPopupWnd()
+static void MENU_DestroyTopPopupWnd()
 {
     WND *tmpWnd = pTopPopupWnd;
     pTopPopupWnd = NULL;
diff --git a/controls/uitools.c b/controls/uitools.c
index b7251d5..b0aa3aa 100644
--- a/controls/uitools.c
+++ b/controls/uitools.c
@@ -5,6 +5,7 @@
  * Copyright 1997 Bertho A. Stultiens
  */
 
+#include "wine/winuser16.h"
 #include "winuser.h"
 #include "debugtools.h"
 
diff --git a/controls/widgets.c b/controls/widgets.c
index e81f689..f13196e 100644
--- a/controls/widgets.c
+++ b/controls/widgets.c
@@ -4,33 +4,20 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#include <string.h>
 #include <assert.h>
+#include <string.h>
 
 #include "win.h"
 #include "button.h"
-#include "static.h"
-#include "scroll.h"
+#include "combo.h"
 #include "desktop.h"
-#include "mdi.h"
 #include "gdi.h"
-#include "module.h"
 #include "heap.h"
-
-/* Window procedures */
-
-extern LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
-                                   WPARAM wParam, LPARAM lParam );
-extern LRESULT WINAPI ComboWndProc( HWND hwnd, UINT msg,
-                                    WPARAM wParam, LPARAM lParam );
-extern LRESULT WINAPI ComboLBWndProc( HWND hwnd, UINT msg,
-                                      WPARAM wParam, LPARAM lParam );
-extern LRESULT WINAPI ListBoxWndProc( HWND hwnd, UINT msg,
-                                      WPARAM wParam, LPARAM lParam );
-extern LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT msg,
-                                        WPARAM wParam, LPARAM lParam );
-extern LRESULT WINAPI IconTitleWndProc( HWND hwnd, UINT msg,
-                                        WPARAM wParam, LPARAM lParam );
+#include "mdi.h"
+#include "menu.h"
+#include "module.h"
+#include "scroll.h"
+#include "static.h"
 
 /* Built-in classes */
 
