diff --git a/find/defs.h b/find/defs.h
index 80a22a5f..e7fa924a 100644
--- a/find/defs.h
+++ b/find/defs.h
@@ -549,8 +549,11 @@ struct options
      are non-directories. */
   bool no_leaf_check;
 
+  /* TODO */
+  bool mount;
+
   /* If true, don't cross filesystem boundaries. */
-  bool stay_on_filesystem;
+  bool xdev;
 
   /* If true, we ignore the problem where we find that a directory entry
    * no longer exists by the time we get around to processing it.
diff --git a/find/ftsfind.c b/find/ftsfind.c
index c5f721ec..11485400 100644
--- a/find/ftsfind.c
+++ b/find/ftsfind.c
@@ -480,7 +480,10 @@ find (char *arg)
       break;
     }
 
-  if (options.stay_on_filesystem)
+  if (options.mount)
+    ftsoptions |= FTS_MOUNT;
+
+  if (options.xdev)
     ftsoptions |= FTS_XDEV;
 
   p = fts_open (arglist, ftsoptions, NULL);
diff --git a/find/parser.c b/find/parser.c
index 5f447933..2acf9b78 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -122,6 +122,7 @@ static bool parse_ls            (const struct parser_table*, char *argv[], int *
 static bool parse_maxdepth      (const struct parser_table*, char *argv[], int *arg_ptr);
 static bool parse_mindepth      (const struct parser_table*, char *argv[], int *arg_ptr);
 static bool parse_mmin          (const struct parser_table*, char *argv[], int *arg_ptr);
+static bool parse_mount         (const struct parser_table*, char *argv[], int *arg_ptr);
 static bool parse_name          (const struct parser_table*, char *argv[], int *arg_ptr);
 static bool parse_negate        (const struct parser_table*, char *argv[], int *arg_ptr);
 static bool parse_newer         (const struct parser_table*, char *argv[], int *arg_ptr);
@@ -272,7 +273,7 @@ static struct parser_table const parse_table[] =
   PARSE_OPTION     ("maxdepth",              maxdepth),      /* GNU */
   PARSE_OPTION     ("mindepth",              mindepth),      /* GNU */
   PARSE_TEST       ("mmin",                  mmin),          /* GNU */
-  PARSE_OPTION     ("mount",                 xdev),         /* Unix */
+  PARSE_OPTION     ("mount",                 mount), /* POSIX */
   {ARG_TEST,       "mtime",                  parse_time, pred_mtime}, /* POSIX */
   PARSE_TEST       ("name",                  name),
 #ifdef UNIMPLEMENTED_UNIX
@@ -2493,10 +2494,17 @@ parse_context (const struct parser_table* entry, char **argv, int *arg_ptr)
   return true;
 }
 
+static bool
+parse_mount (const struct parser_table* entry, char **argv, int *arg_ptr)
+{
+  options.mount = true;
+  return parse_noop (entry, argv, arg_ptr);
+}
+
 static bool
 parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
 {
-  options.stay_on_filesystem = true;
+  options.xdev = true;
   return parse_noop (entry, argv, arg_ptr);
 }
 
diff --git a/find/util.c b/find/util.c
index d8f2d019..e88dabab 100644
--- a/find/util.c
+++ b/find/util.c
@@ -1010,7 +1010,7 @@ set_option_defaults (struct options *p)
   p->cur_day_start.tv_nsec = p->start_time.tv_nsec;
 
   p->full_days = false;
-  p->stay_on_filesystem = false;
+  p->mount = p->xdev = false;
   p->ignore_readdir_race = false;
 
   if (p->posixly_correct)
