diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 8a7f2f83f5c4c1fb7e4c0dcc41387544a6c68c00..f16c6f0b9ed1a59ac6e4e2618c7b7a54985fadae 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -1357,7 +1357,7 @@ static inline int ast_fdisset(struct pollfd *pfds, int fd, int max, int *start)
 	return 0;
 }
 
-#ifdef SOLARIS
+#ifndef HAVE_TIMERSUB
 static inline void timersub(struct timeval *tvend, struct timeval *tvstart, struct timeval *tvdiff)
 {
 	tvdiff->tv_sec = tvend->tv_sec - tvstart->tv_sec;