diff --git a/chrome/content/zotero/preferences/preferences_sync.js b/chrome/content/zotero/preferences/preferences_sync.js
index 0255d3245..3c7aad245 100644
--- a/chrome/content/zotero/preferences/preferences_sync.js
+++ b/chrome/content/zotero/preferences/preferences_sync.js
@@ -31,6 +31,7 @@ Components.utils.import("resource://zotero/config.js");
 Zotero_Preferences.Sync = {
 	init: Zotero.Promise.coroutine(function* () {
 		this.updateStorageSettingsUI();
+		this.updateStorageSettingsGroupsUI();
 
 		var username = Zotero.Users.getCurrentUsername() || Zotero.Prefs.get('sync.server.username') || " ";
 		var apiKey = yield Zotero.Sync.Data.Local.getAPIKey();
@@ -368,30 +369,19 @@ Zotero_Preferences.Sync = {
 			sep.hidden = true;
 		}
 		
-		var menulists = document.querySelectorAll('#storage-settings menulist.storage-mode');
-		for (let menulist of menulists) {
-			menulist.disabled = !enabled;
-		}
-		
+		document.getElementById('storage-user-download-mode').disabled = !enabled;
 		this.updateStorageTerms();
 		
 		window.sizeToContent();
 	}),
 	
 	
-	updateStorageSettingsGroups: function (enabled) {
-		var storageSettings = document.getElementById('storage-settings');
-		var menulists = storageSettings.getElementsByTagName('menulist');
-		for (let menulist of menulists) {
-			if (menulist.className == 'storage-groups') {
-				menulist.disabled = !enabled;
-			}
-		}
-		
-		var self = this;
-		setTimeout(function () {
-			self.updateStorageTerms();
-		}, 1)
+	updateStorageSettingsGroupsUI: function () {
+		setTimeout(() => {
+			var enabled = document.getElementById('pref-storage-groups-enabled').value;
+			document.getElementById('storage-groups-download-mode').disabled = !enabled;
+			this.updateStorageTerms();
+		});
 	},
 	
 	
@@ -400,7 +390,7 @@ Zotero_Preferences.Sync = {
 		
 		var libraryEnabled = document.getElementById('pref-storage-enabled').value;
 		var storageProtocol = document.getElementById('pref-storage-protocol').value;
-		var groupsEnabled = document.getElementById('pref-group-storage-enabled').value;
+		var groupsEnabled = document.getElementById('pref-storage-groups-enabled').value;
 		
 		terms.hidden = !((libraryEnabled && storageProtocol == 'zotero') || groupsEnabled);
 	},
diff --git a/chrome/content/zotero/preferences/preferences_sync.xul b/chrome/content/zotero/preferences/preferences_sync.xul
index 1ab989cb9..8e961e137 100644
--- a/chrome/content/zotero/preferences/preferences_sync.xul
+++ b/chrome/content/zotero/preferences/preferences_sync.xul
@@ -40,7 +40,7 @@
 			<preference id="pref-storage-username" name="extensions.zotero.sync.storage.username" type="string"/>
 			<preference id="pref-storage-downloadMode-personal" name="extensions.zotero.sync.storage.downloadMode.personal" type="string"/>
 			<preference id="pref-storage-downloadMode-groups" name="extensions.zotero.sync.storage.downloadMode.groups" type="string"/>
-			<preference id="pref-group-storage-enabled" name="extensions.zotero.sync.storage.groups.enabled" type="bool"/>
+			<preference id="pref-storage-groups-enabled" name="extensions.zotero.sync.storage.groups.enabled" type="bool"/>
 		</preferences>
 		
 		<tabbox>
@@ -233,7 +233,10 @@
 
 							<hbox class="storage-settings-download-options" align="center">
 								<label value="&zotero.preferences.sync.fileSyncing.download;"/>
-								<menulist class="storage-mode" preference="pref-storage-downloadMode-personal" style="margin-left: 0">
+								<menulist id="storage-user-download-mode"
+										class="storage-mode"
+										preference="pref-storage-downloadMode-personal"
+										style="margin-left: 0">
 									<menupopup>
 										<menuitem label="&zotero.preferences.sync.fileSyncing.download.onDemand;" value="on-demand"/>
 										<menuitem label="&zotero.preferences.sync.fileSyncing.download.atSyncTime;" value="on-sync"/>
@@ -245,12 +248,15 @@
 
 							<!-- Group Libraries -->
 							<checkbox label="&zotero.preferences.sync.fileSyncing.groups;"
-									preference="pref-group-storage-enabled"
-										oncommand="Zotero_Preferences.Sync.updateStorageSettingsGroups(this.checked)"/>
+									preference="pref-storage-groups-enabled"
+										oncommand="Zotero_Preferences.Sync.updateStorageSettingsGroupsUI()"/>
 
 							<hbox class="storage-settings-download-options" align="center">
 								<label value="&zotero.preferences.sync.fileSyncing.download;"/>
-								<menulist class="storage-mode" preference="pref-storage-downloadMode-groups" style="margin-left: 0">
+								<menulist id="storage-groups-download-mode"
+										class="storage-mode"
+										preference="pref-storage-downloadMode-groups"
+										style="margin-left: 0">
 									<menupopup>
 										<menuitem label="&zotero.preferences.sync.fileSyncing.download.onDemand;" value="on-demand"/>
 										<menuitem label="&zotero.preferences.sync.fileSyncing.download.atSyncTime;" value="on-sync"/>
@@ -260,8 +266,8 @@
 
 							<separator class="thin"/>
 
-							<vbox>
-								<hbox id="storage-terms" style="margin-top: .4em; display: block" align="center">
+							<vbox id="storage-terms">
+								<hbox style="margin-top: .4em; display: block" align="center">
 									<label>&zotero.preferences.sync.fileSyncing.tos1;</label>
 									<label class="zotero-text-link" href="https://www.zotero.org/support/terms/terms_of_service" value="&zotero.preferences.sync.fileSyncing.tos2;"/>
 									<label>&zotero.preferences.period;</label>
diff --git a/chrome/skin/default/zotero/preferences.css b/chrome/skin/default/zotero/preferences.css
index ec00d46df..9b9eeed93 100644
--- a/chrome/skin/default/zotero/preferences.css
+++ b/chrome/skin/default/zotero/preferences.css
@@ -156,18 +156,18 @@ grid row hbox:first-child
 	min-width: 8em;
 }
 
-#storage-terms > label
+#storage-terms label
 {
 	margin-left: 0;
 	font-size: .9em;
 }
 
-#storage-terms > label:first-child
+#storage-terms label:first-child
 {
 	margin-right: .25em;
 }
 
-#storage-terms > label[class=zotero-text-link]
+#storage-terms label[class=zotero-text-link]
 {
 	margin-right: 0;
 }