--- a/cpp/src/IceUtil/Cond.cpp
+++ b/cpp/src/IceUtil/Cond.cpp
@@ -332,7 +332,7 @@
         throw ThreadSyscallException(__FILE__, __LINE__, rc);
     }
 
-#if !defined(__hpux) && !defined(__APPLE__)
+#if !defined(__hppa) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__)
     rc = pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); 
     if(rc != 0)
     {
--- a/cpp/src/IceUtil/Time.cpp
+++ b/cpp/src/IceUtil/Time.cpp
@@ -137,7 +137,7 @@
 #  endif
             return Time(static_cast<Int64>(tb.time) * ICE_INT64(1000000) + tb.millitm * 1000);
         }
-#elif defined(__hpux)
+#elif defined(__hppa) || defined(__FreeBSD_kernel__)
         //
         // HP does not support CLOCK_MONOTONIC
         //
