diff --git a/src/or/config.c b/src/or/config.c
index 544b032f3ae353b09cc70d7e7f352cc0f92f8dca..ad4138a3cad48db9864d767897a58cc09842d209 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -2861,7 +2861,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
       options->TransProxyType_parsed = TPT_TPROXY;
 #endif
     } else if (!strcasecmp(options->TransProxyType, "ipfw")) {
-#if !defined(__FreeBSD__) && !defined( DARWIN )
+#if !defined(__FreeBSD_kernel__) && !defined( DARWIN )
       /* Earlier versions of OS X have ipfw */
       REJECT("ipfw is a FreeBSD-specific"
              "and OS X/Darwin-specific feature.");
diff --git a/src/test/test_options.c b/src/test/test_options.c
index ff1eb1855e3de12031faf10237556b7d7cce744a..9458ade666679a21adbf385ef542852aa1d380b0 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -1058,7 +1058,7 @@ test_options_validate__transproxy(void *ignored)
   ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
   tt_int_op(ret, OP_EQ, -1);
 
-#if !defined(__FreeBSD__) && !defined( DARWIN )
+#if !defined(__FreeBSD_kernel__) && !defined( DARWIN )
   tt_str_op(msg, OP_EQ, "ipfw is a FreeBSD-specificand OS X/Darwin-specific "
             "feature.");
 #else
@@ -1086,7 +1086,7 @@ test_options_validate__transproxy(void *ignored)
   tt_int_op(ret, OP_EQ, -1);
   tt_assert(!msg);
 #endif
-#if defined(__FreeBSD__) || defined( DARWIN )
+#if defined(__FreeBSD_kernel__) || defined( DARWIN )
   tdata = get_options_test_data("TransProxyType ipfw\n"
                                 "TransPort 127.0.0.1:123\n");
   ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);