diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c
index 07ecf99eba2c40c5c6dfe350804cc2213e3beec7..cd2ad9a5103e05224dbb78bd4707cec592381247 100644
--- a/libraries/libmdb/mdb.c
+++ b/libraries/libmdb/mdb.c
@@ -3155,6 +3155,7 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mode_t mode)
 		sprintf(dpath, "%s" DATANAME, path);
 	}
 
+	flags |= env->me_flags;
 	/* silently ignore WRITEMAP if we're only getting read access */
 	if (F_ISSET(flags, MDB_RDONLY|MDB_WRITEMAP))
 		flags ^= MDB_WRITEMAP;
diff --git a/libraries/libmdb/mdb.h b/libraries/libmdb/mdb.h
index 1735fbd375605764ae56019792222191892d49b7..d78868cb08a8cae9c3febbf156fdb6607e2abd8c 100644
--- a/libraries/libmdb/mdb.h
+++ b/libraries/libmdb/mdb.h
@@ -401,6 +401,7 @@ int  mdb_env_create(MDB_env **env);
 	 * @param[in] flags Special options for this environment. This parameter
 	 * must be set to 0 or by bitwise OR'ing together one or more of the
 	 * values described here.
+	 * Flags set by mdb_env_set_flags() are also used.
 	 * <ul>
 	 *	<li>#MDB_FIXEDMAP
 	 *      use a fixed address for the mmap region. This flag must be specified
@@ -501,7 +502,7 @@ void mdb_env_close(MDB_env *env);
 
 	/** @brief Set environment flags.
 	 *
-	 * This may be used to set some flags that weren't already set during
+	 * This may be used to set some flags in addition to those from
 	 * #mdb_env_open(), or to unset these flags.
 	 * @param[in] env An environment handle returned by #mdb_env_create()
 	 * @param[in] flags The flags to change, bitwise OR'ed together