diff --git a/src/eval.c b/src/eval.c
index db7ae75..a4f5531 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -6001,7 +6001,7 @@
  * It is not initialized, don't forget to set v_lock.
  */
     listitem_T *
-listitem_alloc()
+listitem_alloc(void)
 {
     return (listitem_T *)alloc(sizeof(listitem_T));
 }
@@ -10902,13 +10902,11 @@
     rettv->vval.v_number = filewritable(get_tv_string(&argvars[0]));
 }
 
-static void findfilendir(typval_T *argvars, typval_T *rettv, int find_what);
-
     static void
-findfilendir(argvars, rettv, find_what)
-    typval_T	*argvars UNUSED;
-    typval_T	*rettv;
-    int		find_what UNUSED;
+findfilendir(
+    typval_T	*argvars UNUSED,
+    typval_T	*rettv,
+    int		find_what UNUSED)
 {
 #ifdef FEAT_SEARCHPATH
     char_u	*fname;
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 2651770..98b8c8f 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -3627,10 +3627,7 @@
  * At least CodeWarrior 9 needed this code.
  */
     char *
-fgets_cr(s, n, stream)
-    char	*s;
-    int		n;
-    FILE	*stream;
+fgets_cr(char *s, int n, FILE *stream)
 {
     int	c = 0;
     int char_read = 0;
diff --git a/src/ex_getln.c b/src/ex_getln.c
index b70755e..1512b03 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -5646,7 +5646,7 @@
  * Returns NUL when something is wrong.
  */
     int
-get_cmdline_type()
+get_cmdline_type(void)
 {
     struct cmdline_info *p = get_ccline_ptr();
 
diff --git a/src/fileio.c b/src/fileio.c
index 6ae1572..ecec757 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -9987,9 +9987,9 @@
  * "curbuf" and "curwin" to match "buf".
  */
     void
-aucmd_prepbuf(aco, buf)
-    aco_save_T	*aco;		/* structure to save values in */
-    buf_T	*buf;		/* new curbuf */
+aucmd_prepbuf(
+    aco_save_T	*aco,		/* structure to save values in */
+    buf_T	*buf)		/* new curbuf */
 {
     aco->save_curbuf = curbuf;
     --curbuf->b_nwindows;
@@ -10003,8 +10003,8 @@
  * This is the non-autocommand version.
  */
     void
-aucmd_restbuf(aco)
-    aco_save_T	*aco;		/* structure holding saved values */
+aucmd_restbuf(
+    aco_save_T	*aco)		/* structure holding saved values */
 {
     --curbuf->b_nwindows;
     curbuf = aco->save_curbuf;
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 6a0e0a3..05d8e30 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2292,7 +2292,7 @@
  * Get IM status.  When IM is on, return not 0.  Else return 0.
  */
     int
-im_get_status()
+im_get_status(void)
 {
     return global_ime_get_status();
 }
diff --git a/src/gui_x11.c b/src/gui_x11.c
index e6e6f61..5a0fe8d 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -2234,8 +2234,7 @@
 
 /* NOT USED YET
     static int
-fontset_descent(fs)
-    XFontSet fs;
+fontset_descent(XFontSet fs)
 {
     XFontSetExtents *extents;
 
diff --git a/src/if_perl.xs b/src/if_perl.xs
index f37f416..b723dcb 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -631,8 +631,7 @@
  * There were no DLL loaded, return FALSE.
  */
     int
-perl_enabled(verbose)
-    int		verbose;
+perl_enabled(int verbose)
 {
     return perl_runtime_link_init((char *)p_perldll, verbose) == OK;
 }
@@ -644,7 +643,7 @@
  * there's nothing to actually parse.
  */
     static void
-perl_init()
+perl_init(void)
 {
     char *bootargs[] = { "VI", NULL };
     int argc = 3;
@@ -670,7 +669,7 @@
  * perl_end(): clean up after ourselves
  */
     void
-perl_end()
+perl_end(void)
 {
     if (perl_interp)
     {
@@ -696,9 +695,9 @@
  * split at '\n' first though.
  */
     void
-msg_split(s, attr)
-    char_u	*s;
-    int		attr;	/* highlighting attributes */
+msg_split(
+    char_u	*s,
+    int		attr)	/* highlighting attributes */
 {
     char *next;
     char *token = (char *)s;
@@ -719,10 +718,10 @@
  * work properly.
  */
     char_u *
-eval_to_string(arg, nextcmd, dolist)
-    char_u	*arg UNUSED;
-    char_u	**nextcmd UNUSED;
-    int		dolist UNUSED;
+eval_to_string(
+    char_u	*arg UNUSED,
+    char_u	**nextcmd UNUSED,
+    int		dolist UNUSED)
 {
     return NULL;
 }
@@ -740,9 +739,7 @@
  */
 
     static SV *
-newWINrv(rv, ptr)
-    SV	    *rv;
-    win_T   *ptr;
+newWINrv(SV *rv, win_T *ptr)
 {
     sv_upgrade(rv, SVt_RV);
     if (ptr->w_perl_private == NULL)
@@ -758,9 +755,7 @@
 }
 
     static SV *
-newBUFrv(rv, ptr)
-    SV	    *rv;
-    buf_T   *ptr;
+newBUFrv(SV *rv, buf_T *ptr)
 {
     sv_upgrade(rv, SVt_RV);
     if (ptr->b_perl_private == NULL)
@@ -780,8 +775,7 @@
  *	Remove all references to the window to be destroyed
  */
     void
-perl_win_free(wp)
-    win_T *wp;
+perl_win_free(win_T *wp)
 {
     if (wp->w_perl_private)
 	sv_setiv((SV *)wp->w_perl_private, 0);
@@ -789,8 +783,7 @@
 }
 
     void
-perl_buf_free(bp)
-    buf_T *bp;
+perl_buf_free(buf_T *bp)
 {
     if (bp->b_perl_private)
 	sv_setiv((SV *)bp->b_perl_private, 0);
@@ -834,7 +827,7 @@
  * Make the magical main::curwin and main::curbuf variables
  */
     static void
-VIM_init()
+VIM_init(void)
 {
     static char cw[] = "main::curwin";
     static char cb[] = "main::curbuf";
@@ -866,8 +859,7 @@
  * ":perl"
  */
     void
-ex_perl(eap)
-    exarg_T	*eap;
+ex_perl(exarg_T *eap)
 {
     char	*err;
     char	*script;
@@ -947,8 +939,7 @@
 }
 
     static int
-replace_line(line, end)
-    linenr_T	*line, *end;
+replace_line(linenr_T *line, linenr_T *end)
 {
     char *str;
 
@@ -989,8 +980,7 @@
 }
 
     static struct ref_map_S *
-ref_map_find_SV(sv)
-    SV	*const sv;
+ref_map_find_SV(SV *const sv)
 {
     struct ref_map_S *refs = ref_map;
     int count = 350;
@@ -1016,9 +1006,7 @@
 }
 
     static int
-perl_to_vim(sv, rettv)
-    SV		*sv;
-    typval_T	*rettv;
+perl_to_vim(SV *sv, typval_T *rettv)
 {
     if (SvROK(sv))
 	sv = SvRV(sv);
@@ -1171,9 +1159,7 @@
  * "perleval()"
  */
     void
-do_perleval(str, rettv)
-    char_u	*str;
-    typval_T	*rettv;
+do_perleval(char_u *str, typval_T *rettv)
 {
     char	*err = NULL;
     STRLEN	err_len = 0;
@@ -1241,8 +1227,7 @@
  * ":perldo".
  */
     void
-ex_perldo(eap)
-    exarg_T	*eap;
+ex_perldo(exarg_T *eap)
 {
     STRLEN	length;
     SV		*sv;
@@ -1314,9 +1299,21 @@
 }
 
 #ifndef FEAT_WINDOWS
-int win_valid(win_T *w) { return TRUE; }
-int win_count() { return 1; }
-win_T *win_find_nr(int n) { return curwin; }
+    int
+win_valid(win_T *w)
+{
+    return TRUE;
+}
+    int
+win_count(void)
+{
+    return 1;
+}
+    win_T *
+win_find_nr(int n)
+{
+    return curwin;
+}
 #endif
 
 XS(boot_VIM);
@@ -1513,8 +1510,7 @@
     curwin = savewin;
 
 void
-Cursor(win, ...)
-    VIWIN win
+Cursor(VIWIN win, ...)
 
     PPCODE:
     if (items == 1)
diff --git a/src/os_unix.c b/src/os_unix.c
index 8d10b14..2dbf74f 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -2041,15 +2041,13 @@
 #else  /* FEAT_X11 */
 
     static int
-get_x11_title(test_only)
-    int	    test_only UNUSED;
+get_x11_title(int test_only UNUSED)
 {
     return FALSE;
 }
 
     static int
-get_x11_icon(test_only)
-    int	    test_only;
+get_x11_icon(int test_only)
 {
     if (!test_only)
     {
@@ -2333,9 +2331,7 @@
 # endif
 
     void
-mch_get_host_name(s, len)
-    char_u  *s;
-    int	    len;
+mch_get_host_name(char_u *s, int len)
 {
 # ifdef VAXC
     vaxc$gethostname((char *)s, len);
@@ -2743,9 +2739,7 @@
  * Copy security info from "from_file" to "to_file".
  */
     void
-mch_copy_sec(from_file, to_file)
-    char_u	*from_file;
-    char_u	*to_file;
+mch_copy_sec(char_u *from_file, char_u *to_file)
 {
     static const char * const smack_copied_attributes[] =
 	{
diff --git a/src/po/sjiscorr.c b/src/po/sjiscorr.c
index a0b09f0..2f55b9e 100644
--- a/src/po/sjiscorr.c
+++ b/src/po/sjiscorr.c
@@ -7,7 +7,7 @@
 #include <string.h>
 
 	int
-main(int argc, char **argv);
+main(int argc, char **argv)
 {
 	char buffer[BUFSIZ];
 	char *p;
diff --git a/src/pty.c b/src/pty.c
index 833b2d6..853c90c 100644
--- a/src/pty.c
+++ b/src/pty.c
@@ -195,8 +195,7 @@
 	&& !defined(PTY_DONE)
 #define PTY_DONE
     int
-OpenPTY(ttyn)
-    char **ttyn;
+OpenPTY(char **ttyn)
 {
     char	*m, *s;
     int		f;
@@ -220,8 +219,7 @@
 #if defined(__sgi) && !defined(PTY_DONE)
 #define PTY_DONE
     int
-OpenPTY(ttyn)
-    char **ttyn;
+OpenPTY(char **ttyn)
 {
     int f;
     char *name;
@@ -246,8 +244,7 @@
 #if defined(MIPS) && defined(HAVE_DEV_PTC) && !defined(PTY_DONE)
 #define PTY_DONE
     int
-OpenPTY(ttyn)
-    char **ttyn;
+OpenPTY(char **ttyn)
 {
     int		f;
     struct stat buf;
@@ -274,8 +271,7 @@
  * Same for Mac OS X Leopard. */
 #define PTY_DONE
     int
-OpenPTY(ttyn)
-    char **ttyn;
+OpenPTY(char **ttyn)
 {
     int		f;
     char	*m;
@@ -316,8 +312,7 @@
 #endif
 
     int
-OpenPTY(ttyn)
-    char **ttyn;
+OpenPTY(char **ttyn)
 {
     int		f;
     /* used for opening a new pty-pair: */
@@ -363,8 +358,7 @@
 # endif
 
     int
-OpenPTY(ttyn)
-    char **ttyn;
+OpenPTY(char **ttyn)
 {
     char	*p, *q, *l, *d;
     int		f;
diff --git a/src/version.c b/src/version.c
index 9e92bd1..80c4eff 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1225,
+/**/
     1224,
 /**/
     1223,
