diff --git a/ares/Makefile.dj b/ares/Makefile.dj
index 58ff9c6ae..23a9ecadf 100644
--- a/ares/Makefile.dj
+++ b/ares/Makefile.dj
@@ -11,7 +11,7 @@ include Makefile.inc
 CFLAGS += -DWATT32 -DHAVE_AF_INET6 -DHAVE_PF_INET6 -DHAVE_FIONBIO \
           -DHAVE_STRUCT_IN6_ADDR -DHAVE_SOCKADDR_IN6_SIN6_SCOPE_ID \
           -DHAVE_SYS_TIME_H -DHAVE_STRUCT_SOCKADDR_IN6 -DHAVE_STRUCT_ADDRINFO \
-          -DHAVE_SIGNAL_H -DHAVE_SIG_ATOMIC_T \
+          -DHAVE_SIGNAL_H -DHAVE_SIG_ATOMIC_T -DRETSIGTYPE='void' \
           -DHAVE_ARPA_NAMESER_H -DNS_INADDRSZ=4 -DHAVE_RECV -DHAVE_SEND \
           -DSEND_TYPE_ARG1='int'   -DSEND_QUAL_ARG2='const' \
           -DSEND_TYPE_ARG2='void*' -DSEND_TYPE_ARG3='int' \
diff --git a/ares/config-win32.h b/ares/config-win32.h
index 4b802e138..6fd81181e 100644
--- a/ares/config-win32.h
+++ b/ares/config-win32.h
@@ -125,6 +125,29 @@
   #undef HAVE_WS2TCPIP_H
 #endif
 
+/* ---------------------------------------------------------------- */
+/*                       TYPEDEF REPLACEMENTS                       */
+/* ---------------------------------------------------------------- */
+
+/* Define this if in_addr_t is not an available 'typedefed' type */
+#define in_addr_t unsigned long
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE void
+
+/* Define ssize_t if it is not an available 'typedefed' type */
+#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__)
+#elif defined(_WIN64)
+#define ssize_t __int64
+#else
+#define ssize_t int
+#endif
+
+/* Define to 'int' if socklen_t is not an available 'typedefed' type */
+#ifndef HAVE_WS2TCPIP_H
+#define socklen_t int
+#endif
+
 /* ---------------------------------------------------------------- */
 /*                          STRUCT RELATED                          */
 /* ---------------------------------------------------------------- */
diff --git a/ares/configure.ac b/ares/configure.ac
index 71d4a0152..05262b965 100644
--- a/ares/configure.ac
+++ b/ares/configure.ac
@@ -299,6 +299,8 @@ TYPE_SOCKADDR_STORAGE
 
 TYPE_SIG_ATOMIC_T
 
+AC_TYPE_SIGNAL
+
 CURL_CHECK_FUNC_RECV
 
 CURL_CHECK_FUNC_SEND
diff --git a/ares/setup_once.h b/ares/setup_once.h
index 23d75ca0d..7c22b2aab 100644
--- a/ares/setup_once.h
+++ b/ares/setup_once.h
@@ -133,5 +133,14 @@ typedef int sig_atomic_t;
 #endif
 
 
+/*
+ * Default return type for signal handlers.
+ */
+
+#ifndef RETSIGTYPE
+#define RETSIGTYPE void
+#endif
+
+
 #endif /* __SETUP_ONCE_H */
 
diff --git a/configure.ac b/configure.ac
index 74e74eda9..acfe44edd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1633,6 +1633,8 @@ TYPE_SOCKADDR_STORAGE
 
 TYPE_SIG_ATOMIC_T
 
+AC_TYPE_SIGNAL
+
 AC_FUNC_SELECT_ARGTYPES
 
 CURL_CHECK_FUNC_RECV
@@ -1643,7 +1645,7 @@ CURL_CHECK_MSG_NOSIGNAL
 
 dnl Checks for library functions.
 dnl AC_PROG_GCC_TRADITIONAL
-AC_TYPE_SIGNAL
+
 dnl AC_FUNC_VPRINTF
 case $host in
   *msdosdjgpp)
diff --git a/lib/config-mac.h b/lib/config-mac.h
index c37610213..1db255009 100644
--- a/lib/config-mac.h
+++ b/lib/config-mac.h
@@ -47,6 +47,8 @@
 
 #define HAVE_FIONBIO            1
 
+#define RETSIGTYPE void
+
 #define HAVE_GETNAMEINFO 1
 #define GETNAMEINFO_QUAL_ARG1 const
 #define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
diff --git a/lib/config-win32.h b/lib/config-win32.h
index 3fd08f5bf..443be95e6 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -294,7 +294,7 @@
 #define in_addr_t unsigned long
 
 /* Define as the return type of signal handlers (int or void).  */
-/* #define RETSIGTYPE void */
+#define RETSIGTYPE void
 
 #if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__)
 #elif defined(_WIN64)
diff --git a/lib/config-win32ce.h b/lib/config-win32ce.h
index fc516f264..fc038aad9 100644
--- a/lib/config-win32ce.h
+++ b/lib/config-win32ce.h
@@ -278,13 +278,15 @@
 #define in_addr_t unsigned long
 
 /* Define as the return type of signal handlers (int or void).  */
-/* #define RETSIGTYPE void */
+#define RETSIGTYPE void
 
-/* Define to `unsigned' if size_t is not an available 'typedefed' type */
-/* #define size_t unsigned */
-
-/* Define to 'int' if ssize_t is not an available 'typedefed' type */
+/* Define ssize_t if it is not an available 'typedefed' type */
+#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__)
+#elif defined(_WIN64)
+#define ssize_t __int64
+#else
 #define ssize_t int
+#endif
 
 /* Define to 'int' if socklen_t is not an available 'typedefed' type */
 #ifndef HAVE_WS2TCPIP_H
diff --git a/lib/setup_once.h b/lib/setup_once.h
index 07909475c..9f36995eb 100644
--- a/lib/setup_once.h
+++ b/lib/setup_once.h
@@ -140,5 +140,14 @@ typedef int sig_atomic_t;
 #endif
 
 
+/*
+ * Default return type for signal handlers.
+ */
+
+#ifndef RETSIGTYPE
+#define RETSIGTYPE void
+#endif
+
+
 #endif /* __SETUP_ONCE_H */
 
diff --git a/lib/url.c b/lib/url.c
index b7f06cc5b..bf67b9c1b 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -179,9 +179,6 @@ static void signalPipeClose(struct curl_llist *pipe);
 #ifndef WIN32
 /* not for WIN32 builds */
 
-#ifndef RETSIGTYPE
-#define RETSIGTYPE void
-#endif
 #ifdef HAVE_SIGSETJMP
 extern sigjmp_buf curl_jmpenv;
 #endif
diff --git a/src/config-win32.h b/src/config-win32.h
index 523147d79..047f28e85 100644
--- a/src/config-win32.h
+++ b/src/config-win32.h
@@ -128,6 +128,28 @@
 /* Define to the function return type for send. */
 #define SEND_TYPE_RETV int
 
+/* ---------------------------------------------------------------- */
+/*                       TYPEDEF REPLACEMENTS                       */
+/* ---------------------------------------------------------------- */
+
+/* Define this if in_addr_t is not an available 'typedefed' type */
+#define in_addr_t unsigned long
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE void
+
+#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__)
+#elif defined(_WIN64)
+#define ssize_t __int64
+#else
+#define ssize_t int
+#endif
+
+/* Define to 'int' if socklen_t is not an available 'typedefed' type */
+#ifndef HAVE_WS2TCPIP_H
+#define socklen_t int
+#endif
+
 /* ---------------------------------------------------------------- */
 /*                          STRUCT RELATED                          */
 /* ---------------------------------------------------------------- */