diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 62e9e0b..713deae 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -83,12 +83,12 @@
 
 #define CHANOFFSET(z)	(3-(z))	/* this is byte order dependent */
 
-static expandrow PROTO((unsigned char *, unsigned char *, int));
-static setalpha PROTO((unsigned char *, int));
-static copybw PROTO((long *, int));
-static interleaverow PROTO((unsigned char *, unsigned char *, int, int));
+static void expandrow PROTO((unsigned char *, unsigned char *, int));
+static void setalpha PROTO((unsigned char *, int));
+static void copybw PROTO((long *, int));
+static void interleaverow PROTO((unsigned char *, unsigned char *, int, int));
 static int compressrow PROTO((unsigned char *, unsigned char *, int, int));
-static lumrow PROTO((unsigned char *, unsigned char *, int));
+static void lumrow PROTO((unsigned char *, unsigned char *, int));
 
 #ifdef ADD_TAGS
 #define TAGLEN	(5)
@@ -141,7 +141,7 @@
     return (buf[0]<<24)+(buf[1]<<16)+(buf[2]<<8)+(buf[3]<<0);
 }
 
-static putshort(outf,val)
+static void putshort(outf,val)
 FILE *outf;
 unsigned short val;
 {
@@ -165,7 +165,7 @@
     return fwrite(buf,4,1,outf);
 }
 
-static readheader(inf,image)
+static void readheader(inf,image)
 FILE *inf;
 IMAGE *image;
 {
@@ -213,7 +213,7 @@
     return r;
 }
 
-static readtab(inf,tab,len)
+static void readtab(inf,tab,len)
 FILE *inf;
 /*unsigned*/ long *tab;
 int len;
@@ -435,7 +435,7 @@
 
 /* static utility functions for longimagedata */
 
-static interleaverow(lptr,cptr,z,n)
+static void interleaverow(lptr,cptr,z,n)
 unsigned char *lptr, *cptr;
 int z, n;
 {
@@ -446,7 +446,7 @@
     }
 }
 
-static copybw(lptr,n)
+static void copybw(lptr,n)
 long *lptr;
 int n;
 {
@@ -468,7 +468,7 @@
     }
 }
 
-static setalpha(lptr,n)
+static void setalpha(lptr,n)
 unsigned char *lptr;
 {
     while(n>=8) {
@@ -489,7 +489,7 @@
     }
 }
 
-static expandrow(optr,iptr,z)
+static void expandrow(optr,iptr,z)
 unsigned char *optr, *iptr;
 int z;
 {
@@ -647,7 +647,7 @@
 
 /* static utility functions for longstoimage */
 
-static lumrow(rgbptr,lumptr,n) 
+static void lumrow(rgbptr,lumptr,n) 
 unsigned char *rgbptr, *lumptr;
 int n;
 {
