--- a/xc/lib/Xaw3d/MultiSink.c
+++ b/xc/lib/Xaw3d/MultiSink.c
@@ -82,6 +82,7 @@
 #include "XawI18n.h"
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
 
 #ifdef GETLASTPOS
 #undef GETLASTPOS		/* We will use our own GETLASTPOS. */
--- a/xc/lib/Xaw3d/XawI18n.c
+++ b/xc/lib/Xaw3d/XawI18n.c
@@ -55,6 +55,7 @@
 
 */
 
+#include <stdlib.h>
 #include <X11/IntrinsicP.h>
 #include "XawI18n.h"
 
--- a/xc/lib/Xaw3d/MultiSrc.c
+++ b/xc/lib/Xaw3d/MultiSrc.c
@@ -77,6 +77,8 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <wchar.h>
+
 
 /****************************************************************
  *
--- a/xc/lib/Xaw3d/XawIm.c
+++ b/xc/lib/Xaw3d/XawIm.c
@@ -58,6 +58,8 @@
 #include <X11/StringDefs.h>
 #include <X11/Xos.h>
 #include <X11/Xfuncs.h>
+#include <X11/ResourceI.h>
+#include <X11/VarargsI.h>
 #include <X11/ShellP.h>
 #include <X11/Xaw3d/TextP.h>
 #include <X11/Xaw3d/MultiSrc.h>
--- a/xc/lib/Xaw3d/List.c
+++ b/xc/lib/Xaw3d/List.c
@@ -38,6 +38,7 @@
 
 #include "Xaw3dP.h"
 #include <stdio.h>
+#include <stdlib.h>
 #include <ctype.h>
 #include <X11/IntrinsicP.h>
 #include <X11/StringDefs.h>
--- a/xc/lib/Xaw3d/Panner.c
+++ b/xc/lib/Xaw3d/Panner.c
@@ -36,7 +36,7 @@
 #include <X11/Xmu/Misc.h>		/* for Min */
 #include <X11/Xmu/Drawing.h>
 #include <ctype.h>			/* for isascii() etc. */
-#include <math.h>			/* for atof() */
+#include <stdlib.h> /* for atof() */
 
 extern Bool XmuDistinguishablePixels(); /* not defined in any Xmu headers */
 
--- a/xc/lib/Xaw3d/TextSrc.c
+++ b/xc/lib/Xaw3d/TextSrc.c
@@ -49,6 +49,7 @@
 #endif
 #include <stdio.h>
 #include <ctype.h>
+#include <wchar.h>
 
 /****************************************************************
  *
--- a/xc/lib/Xaw3d/Text.c
+++ b/xc/lib/Xaw3d/Text.c
@@ -58,6 +58,8 @@
 #include "XawI18n.h"
 #endif
 #include <stdio.h>
+#include <stdlib.h>
+#include <wchar.h>
 #include <X11/Xmu/Atoms.h>
 #include <X11/Xmu/CharSet.h>
 #include <X11/Xmu/Converters.h>
--- a/xc/lib/Xaw3d/TextPop.c
+++ b/xc/lib/Xaw3d/TextPop.c
@@ -63,6 +63,7 @@
 #include "XawI18n.h"
 #endif
 #include <stdio.h>
+#include <wchar.h>
 #include <X11/Xos.h>		/* for O_RDONLY */
 #include <errno.h>
 
--- a/xc/lib/Xaw3d/TextAction.c
+++ b/xc/lib/Xaw3d/TextAction.c
@@ -46,6 +46,8 @@
 #endif
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
+#include <wchar.h>
 
 #define SrcScan                XawTextSourceScan
 #define FindDist               XawTextSinkFindDistance
--- a/xc/lib/Xaw3d/ThreeD.c
+++ b/xc/lib/Xaw3d/ThreeD.c
@@ -39,6 +39,7 @@
 #include <X11/Xaw3d/XawInit.h>
 #include <X11/Xaw3d/ThreeDP.h>
 #include <X11/Xosdefs.h>
+#include <X11/Xmu/CharSet.h>
 
 /* Initialization of defaults */
 
--- a/xc/lib/Xaw3d/Tip.c
+++ b/xc/lib/Xaw3d/Tip.c
@@ -41,6 +41,7 @@
 #include <X11/Xmu/Converters.h>
 #include <X11/Xaw3d/TipP.h>
 #include <X11/Xaw3d/XawInit.h>
+#include <stdlib.h>
 
 #define	TIP_EVENT_MASK (ButtonPressMask	  |	\
 			ButtonReleaseMask |	\
--- a/xc/lib/Xaw3d/laygram.y
+++ b/xc/lib/Xaw3d/laygram.y
@@ -12,6 +12,9 @@
 
 static LayoutPtr    *dest;
 
+int yylex();
+int yyerror();
+
 %}
 
 %union {
--- a/xc/lib/Xaw3d/laylex.l
+++ b/xc/lib/Xaw3d/laylex.l
@@ -26,6 +26,7 @@
 #ifdef __STDC__
 static int count ();
 #endif
+
 %}
 %%
 vertical		return VERTICAL;
@@ -86,13 +87,13 @@
     return i;
 }
 
-yysetsource(s)
+void yysetsource(s)
     char    *s;
 {
     yysourcebase = yysource = s;
 }
 
-yyerror(s)
+void yyerror(s)
     char    *s;
 {
     char    *t;
