  	fputs(_(" -m, --mount[=<file>]   enter mount namespace\n"), out);
  	fputs(_(" -u, --uts[=<file>]     enter UTS namespace (hostname etc)\n"), out);
  	fputs(_(" -i, --ipc[=<file>]     enter System V IPC namespace\n"), out);
-@@ -82,6 +87,8 @@
- 	fputs(_(" -r, --root[=<dir>]     set the root directory\n"), out);
- 	fputs(_(" -w, --wd[=<dir>]       set the working directory\n"), out);
- 	fputs(_(" -F, --no-fork          do not fork before exec'ing <program>\n"), out);
+@@ -89,6 +94,8 @@
+ #ifdef HAVE_LIBSELINUX
+ 	fputs(_(" -Z, --follow-context   set SELinux context according to --target PID\n"), out);
+ #endif
 +	fputs(_(" -b,     <src>:<dest>   bind mount src to dest.\n"), out);
 +	fprintf(out, _("                        This option can be invoked %d times\n"), BIND_MOUNT_MAPS_SIZE);
  
  	fputs(USAGE_SEPARATOR, out);
  	fputs(USAGE_HELP, out);
-@@ -91,7 +98,9 @@
+@@ -98,7 +105,9 @@
  	exit(status);
  }
  

+	memset(bind_mount_maps, 0, sizeof(bind_mount_maps));
 
 	while ((c =
-		getopt_long(argc, argv, "+hVt:m::u::i::n::p::U::S:G:r::w::F",
+		getopt_long(argc, argv, "+hVt:m::u::i::n::p::U::S:G:r::w::Fb:",
 			    longopts, NULL)) != -1) {
 		switch (c) {
 		case 'h':
@@ -210,8 +221,17 @@
 			printf(UTIL_LINUX_VERSION);
 			return EXIT_SUCCESS;
 		case 't':

 static struct namespace_file {
 	int nstype;
 	const char *name;
@@ -73,7 +76,9 @@
 	fputs(_("Run a program with namespaces of other processes.\n"), out);
 
 	fputs(USAGE_OPTIONS, out);
