diff --git a/src/shell.c b/src/shell.c
index eb8d802..8946296 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -381,36 +381,27 @@
 static void
 shell_configuration(struct desktop_shell *shell, int config_fd)
 {
-	char *path = NULL;
-	int duration = 60;
-	unsigned int num_workspaces = DEFAULT_NUM_WORKSPACES;
-	char *modifier = NULL;
-	char *win_animation = NULL;
+	struct weston_config_section *section;
+	int duration;
+	char *s;
 
-	struct config_key shell_keys[] = {
-		{ "binding-modifier",   CONFIG_KEY_STRING, &modifier },
-		{ "animation",          CONFIG_KEY_STRING, &win_animation},
-		{ "num-workspaces",
-			CONFIG_KEY_UNSIGNED_INTEGER, &num_workspaces },
-	};
-
-	struct config_key saver_keys[] = {
-		{ "path",       CONFIG_KEY_STRING,  &path },
-		{ "duration",   CONFIG_KEY_INTEGER, &duration },
-	};
-
-	struct config_section cs[] = {
-		{ "shell", shell_keys, ARRAY_LENGTH(shell_keys), NULL },
-		{ "screensaver", saver_keys, ARRAY_LENGTH(saver_keys), NULL },
-	};
-
-	parse_config_file(config_fd, cs, ARRAY_LENGTH(cs), shell);
-
-	shell->screensaver.path = path;
+	section = weston_config_get_section(shell->compositor->config,
+					    "screensaver", NULL, NULL);
+	weston_config_section_get_string(section,
+					 "path", &shell->screensaver.path, NULL);
+	weston_config_section_get_int(section, "duration", &duration, 60);
 	shell->screensaver.duration = duration * 1000;
-	shell->binding_modifier = get_modifier(modifier);
-	shell->win_animation_type = get_animation_type(win_animation);
-	shell->workspaces.num = num_workspaces > 0 ? num_workspaces : 1;
+
+	section = weston_config_get_section(shell->compositor->config,
+					    "shell", NULL, NULL);
+	weston_config_section_get_string(section,
+					 "binding-modifier", &s, "super");
+	shell->binding_modifier = get_modifier(s);
+	weston_config_section_get_string(section, "animation", &s, "none");
+	shell->win_animation_type = get_animation_type(s);
+	weston_config_section_get_uint(section, "num-workspaces",
+				       &shell->workspaces.num,
+				       DEFAULT_NUM_WORKSPACES);
 }
 
 static void
