diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx
index a03b7a9a992a0f487f89bb0bd6bb10d450cdd286..7bd1a5a9e797e715b835b7e3587e7189699f19f2 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx
@@ -33,6 +33,7 @@ const propTypes = {
   hasBreakoutRoom: PropTypes.bool.isRequired,
   isBreakoutEnabled: PropTypes.bool.isRequired,
   isBreakoutRecordable: PropTypes.bool.isRequired,
+  dynamicGuestPolicy: PropTypes.bool.isRequired,
 };
 
 const intlMessages = defineMessages({
@@ -228,6 +229,7 @@ class UserOptions extends PureComponent {
       amIModerator,
       users,
       isMeteorConnected,
+      dynamicGuestPolicy,
     } = this.props;
 
     const canCreateBreakout = amIModerator
@@ -292,7 +294,7 @@ class UserOptions extends PureComponent {
         />
       ) : null
       ),
-      (!meetingIsBreakout && isMeteorConnected ? (
+      (!meetingIsBreakout && isMeteorConnected && dynamicGuestPolicy ? (
         <DropdownListItem
           key={this.guestPolicyId}
           icon="user"
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx
index a6b4bfa1eab8f905378567b7c5f7a41ace13df2a..214e479ddce5f99466f28f39a2886107a03e60c9 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx
@@ -23,6 +23,8 @@ const intlMessages = defineMessages({
   },
 });
 
+const dynamicGuestPolicy = Meteor.settings.public.app.dynamicGuestPolicy;
+
 const meetingMuteDisabledLog = () => logger.info({
   logCode: 'useroptions_unmute_all',
   extraInfo: { logType: 'moderator_action' },
@@ -89,6 +91,7 @@ const UserOptionsContainer = withTracker((props) => {
     guestPolicy: WaitingUsersService.getGuestPolicy(),
     isMeteorConnected: Meteor.status().connected,
     meetingName: getMeetingName(),
+    dynamicGuestPolicy,
   };
 })(UserOptions);
 
diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx b/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx
index 853113f49e86d30a14b80de6760982479f6f6110..427f45d19ab3752e721e6eb16097659d6095ab6e 100755
--- a/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx
@@ -169,6 +169,7 @@ const WaitingUsers = (props) => {
     setGuestLobbyMessage,
     guestLobbyMessage,
     authenticatedGuest,
+    allowRememberChoice,
   } = props;
 
   const onCheckBoxChange = (e) => {
@@ -227,7 +228,7 @@ const WaitingUsers = (props) => {
     },
   ];
 
-  const buttonsData = authenticatedGuest ? _.concat(authGuestButtonsData , guestButtonsData) : guestButtonsData;
+  const buttonsData = authenticatedGuest ? _.concat(authGuestButtonsData, guestButtonsData) : guestButtonsData;
 
   return (
     <div
@@ -270,12 +271,15 @@ const WaitingUsers = (props) => {
             ))
           }
         </div>
-        <div className={styles.rememberContainer}>
-          <input id="rememderCheckboxId" type="checkbox" onChange={onCheckBoxChange} />
-          <label htmlFor="rememderCheckboxId">
-            {intl.formatMessage(intlMessages.rememberChoice)}
-          </label>
-        </div>
+
+        {allowRememberChoice ? (
+          <div className={styles.rememberContainer}>
+            <input id="rememderCheckboxId" type="checkbox" onChange={onCheckBoxChange} />
+            <label htmlFor="rememderCheckboxId">
+              {intl.formatMessage(intlMessages.rememberChoice)}
+            </label>
+          </div>
+        ) : null}
       </div>
       {renderPendingUsers(
         intl.formatMessage(intlMessages.pendingUsers,
diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx b/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx
index 0341da5a5daa35ba6496687121c5988b23fbb5fc..98843fc492a956477c28ff9700c5ee229f04e884 100644
--- a/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx
+++ b/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx
@@ -42,5 +42,6 @@ export default withTracker(() => {
     setGuestLobbyMessage: Service.setGuestLobbyMessage,
     guestLobbyMessage: Service.getGuestLobbyMessage(),
     authenticatedGuest,
+    allowRememberChoice: Service.allowRememberChoice,
   };
 })(WaitingContainer);
diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/service.js b/bigbluebutton-html5/imports/ui/components/waiting-users/service.js
index 190d2fbf15dee94a59702e665544f48ebf0be731..ab1d2a195f3fa065fadf1ff54ae72a0c7263fa07 100644
--- a/bigbluebutton-html5/imports/ui/components/waiting-users/service.js
+++ b/bigbluebutton-html5/imports/ui/components/waiting-users/service.js
@@ -17,6 +17,9 @@ const getGuestPolicy = () => {
 
 const isGuestLobbyMessageEnabled = Meteor.settings.public.app.enableGuestLobbyMessage;
 
+// We use the dynamicGuestPolicy rule for allowing the rememberChoice checkbox
+const allowRememberChoice = Meteor.settings.public.app.dynamicGuestPolicy;
+
 const getGuestLobbyMessage = () => {
   const meeting = Meetings.findOne(
     { meetingId: Auth.meetingID },
@@ -37,4 +40,5 @@ export default {
   isGuestLobbyMessageEnabled,
   getGuestLobbyMessage,
   setGuestLobbyMessage,
+  allowRememberChoice,
 };
diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml
index ab6ae7d67b176624a2affcdc25ff71e4cd2ceb81..ae0acc99ea575692bdb0fac7e81a5eb63aa64464 100755
--- a/bigbluebutton-html5/private/config/settings.yml
+++ b/bigbluebutton-html5/private/config/settings.yml
@@ -40,6 +40,7 @@ public:
     # in some cases we want only custom logoutUrl to be used when provided on meeting create. Default value: true
     allowDefaultLogoutUrl: true
     allowUserLookup: false
+    dynamicGuestPolicy: true
     enableGuestLobbyMessage: true
     enableNetworkInformation: false
     enableLimitOfViewersInWebcam: false