diff --git a/main/asterisk.c b/main/asterisk.c
index a5a111cf375575898ab17bcc200fb3ad8cda2deb..fde3be6a38d6352d2c8b9093b42a932d74b85270 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -577,7 +577,10 @@ int64_t ast_profile(int i, int64_t delta)
 	return prof_data->e[i].value;
 }
 
-#if defined ( __i386__) && (defined(__FreeBSD__) || defined(linux))
+/* The RDTSC instruction was introduced on the Pentium processor and is not
+ * implemented on certain clones, like the Cyrix 586. Hence, the previous
+ * expectation of __i386__ was in error. */
+#if defined ( __i686__) && (defined(__FreeBSD__) || defined(linux))
 #if defined(__FreeBSD__)
 #include <machine/cpufunc.h>
 #elif defined(linux)