diff --git a/src/gutsRedIT.c b/src/gutsRedIT.c
index 7da7e897efe2e450777222db7dd304d66bde357b..7059f4f254ba1ff5d214c122a77c92df6db34f3c 100644
--- a/src/gutsRedIT.c
+++ b/src/gutsRedIT.c
@@ -3,7 +3,7 @@
 #include <math.h>
 
 void gutsredit_init(void (* odeparms)(int *, double *));
-void gutsredit_free();
+void gutsredit_free(void);
 
 /**
  * Number of MCMC iterations
@@ -32,7 +32,7 @@ void gutsredit_init(void (* odeparms)(int *, double *))
 {
   // get access to parameters supplied to deSolve
   SEXP (*fun)(void);
-  fun = (SEXP(*)())R_GetCCallable("deSolve", "get_deSolve_gparms");
+  fun = (SEXP(*)(void))R_GetCCallable("deSolve", "get_deSolve_gparms");
   if(LENGTH(fun())==0)
     error("no parameters supplied");
   
@@ -56,7 +56,7 @@ void gutsredit_init(void (* odeparms)(int *, double *))
 /**
  * Free allocated memory
  */
-void gutsredit_free()
+void gutsredit_free(void)
 {
   Free(kd);
   Free(hb);
diff --git a/src/gutsRedSD.c b/src/gutsRedSD.c
index 22d6fba877807127fa9c0eb6caff8cb818635673..370d330e795fdecc8533f7edeb5e8ea9ab427e3f 100644
--- a/src/gutsRedSD.c
+++ b/src/gutsRedSD.c
@@ -3,7 +3,7 @@
 #include <math.h>
 
 void gutsredsd_init(void (* odeparms)(int *, double *));
-void gutsredsd_free();
+void gutsredsd_free(void);
 
 /**
  * Number of MCMC iterations
@@ -39,7 +39,7 @@ void gutsredsd_init(void (* odeparms)(int *, double *))
     error("no parameters supplied");
   
   // peak into first argument
-  MCMC = (int)REAL(fun())[0];
+  MCMC = (int)REAL(fun(void))[0];
   // allocate memory
   int N = MCMC*4+1;
   double *arr = (double*)Calloc(N, double);
@@ -62,7 +62,7 @@ void gutsredsd_init(void (* odeparms)(int *, double *))
 /**
  * Free allocated memory
  */
-void gutsredsd_free()
+void gutsredsd_free(void)
 {
   Free(kd);
   Free(hb);