diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5a03fcf..87492de 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -7275,7 +7275,10 @@ listcmds		Compiled with commands for the buffer list |:files|
 localmap		Compiled with local mappings and abbr. |:map-local|
 lua			Compiled with Lua interface |Lua|.
 mac			Macintosh version of Vim.
-macunix			Macintosh version of Vim, using Unix files (OS-X).
+macunix			Compiled for OS X with the default feature darwin
+			enabled.
+osx			Compiled for OS X, including the case where the darwin
+			feature is disabled.
 menu			Compiled with support for |:menu|.
 mksession		Compiled with support for |:mksession|.
 modify_fname		Compiled with file name modifiers. |filename-modifiers|
diff --git a/src/eval.c b/src/eval.c
index a90dd0b..10fc1b1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -13117,7 +13117,10 @@ f_has(typval_T *argvars, typval_T *rettv)
 	"mac",
 #endif
 #if defined(MACOS_X_UNIX)
-	"macunix",
+	"macunix",  /* built with the default feature 'darwin' enabled */
+#endif
+#if defined(__APPLE__) && __APPLE__ == 1
+	"osx",	    /* including both 'darwin' enabled and disabled cases */
 #endif
 #ifdef __QNX__
 	"qnx",
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index e7448fa..a41e230 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -28,7 +28,7 @@ else
   finish
 endif
 
-let s:chopt = has('macunix') ? {'waittime' : 1} : {}
+let s:chopt = has('osx') ? {'waittime' : 1} : {}
 
 " Run "testfunc" after sarting the server and stop the server afterwards.
 func s:run_server(testfunc)
