diff --git a/src/exec.c b/src/exec.c
index 83cba94..4b777d2 100644
--- a/src/exec.c
+++ b/src/exec.c
@@ -775,12 +775,8 @@
 	return err;
 }
 
-STATIC int
-describe_command(out, command, path, verbose)
-	struct output *out;
-	char *command;
-	const char *path;
-	int verbose;
+static int describe_command(struct output *out, char *command,
+                            const char *path, int verbose)
 {
 	struct cmdentry entry;
 	struct tblentry *cmdp;
@@ -881,10 +877,7 @@
 	return 0;
 }
 
-int
-commandcmd(argc, argv)
-	int argc;
-	char **argv;
+int commandcmd(int argc, char **argv)
 {
 	char *cmd;
 	int c;
diff --git a/src/jobs.c b/src/jobs.c
index 78c7bc6..e16aeca 100644
--- a/src/jobs.c
+++ b/src/jobs.c
@@ -243,10 +243,7 @@
 #endif
 
 
-int
-killcmd(argc, argv)
-	int argc;
-	char **argv;
+int killcmd(int argc, char **argv)
 {
 	extern char *signal_names[];
 	int signo = -1;
diff --git a/src/mksignames.c b/src/mksignames.c
index a832eab..192728b 100644
--- a/src/mksignames.c
+++ b/src/mksignames.c
@@ -360,9 +360,7 @@
       }
 }
 
-void
-write_signames (stream)
-     FILE *stream;
+void write_signames(FILE *stream)
 {
   register int i;
 
diff --git a/src/nodes.c.pat b/src/nodes.c.pat
index 9125bc7..636456c 100644
--- a/src/nodes.c.pat
+++ b/src/nodes.c.pat
@@ -87,18 +87,14 @@
 
 
 
-STATIC void
-calcsize(n)
-	union node *n;
+static void calcsize(union node *n)
 {
 	%CALCSIZE
 }
 
 
 
-STATIC void
-sizenodelist(lp)
-	struct nodelist *lp;
+static void sizenodelist(struct nodelist *lp)
 {
 	while (lp) {
 		funcblocksize += SHELL_ALIGN(sizeof(struct nodelist));
@@ -109,9 +105,7 @@
 
 
 
-STATIC union node *
-copynode(n)
-	union node *n;
+static union node *copynode(union node *n)
 {
 	union node *new;
 
@@ -120,9 +114,7 @@
 }
 
 
-STATIC struct nodelist *
-copynodelist(lp)
-	struct nodelist *lp;
+static struct nodelist *copynodelist(struct nodelist *lp)
 {
 	struct nodelist *start;
 	struct nodelist **lpp;
@@ -142,9 +134,7 @@
 
 
 
-STATIC char *
-nodesavestr(s)
-	char   *s;
+static char *nodesavestr(char *s)
 {
 	char   *rtn = funcstring;
 
diff --git a/src/options.c b/src/options.c
index 8101cf5..f157321 100644
--- a/src/options.c
+++ b/src/options.c
@@ -391,9 +391,7 @@
 }
 
 
-void
-getoptsreset(value)
-	const char *value;
+void getoptsreset(const char *value)
 {
 	shellparam.optind = number(value) ?: 1;
 	shellparam.optoff = -1;
diff --git a/src/redir.c b/src/redir.c
index 631ddc9..d74602c 100644
--- a/src/redir.c
+++ b/src/redir.c
@@ -281,18 +281,12 @@
 }
 
 
-STATIC void
 #ifdef notyet
-dupredirect(redir, f, memory)
+static void dupredirect(union node *redir, int f, char memory[10])
 #else
-dupredirect(redir, f)
+static void dupredirect(union node *redir, int f)
 #endif
-	union node *redir;
-	int f;
-#ifdef notyet
-	char memory[10];
-#endif
-	{
+{
 	int fd = redir->nfile.fd;
 	int err = 0;
 
