diff --git a/configure.ac b/configure.ac
index cf4d166..8ff8362 100644
--- a/configure.ac
+++ b/configure.ac
@@ -272,7 +272,7 @@ case "$with_gtk" in
        ;;
 esac
 
-GCONF_REQUIRED=2.0
+GCONF_REQUIRED=2.31.1
 GLIB_REQUIRED=2.32.0
 GIO_REQUIRED=2.32.0
 
@@ -313,6 +313,12 @@ if test "$with_platform" = "gnome"; then
   PKGS="$PKGS gconf-2.0 >= $GCONF_REQUIRED"
 fi
 
+AC_SUBST(gsettingsschemadir,
+         `pkg-config --variable gsettingsschemadir gio-2.0`)
+AC_SUBST(gsettingsupdateschemacache,
+         `pkg-config --variable gsettingsupdateschemacache gio-2.0`)
+
+
 # Check for librsvg
 
 have_rsvg=no
diff --git a/src/Makefile.am b/src/Makefile.am
index aac4614..2fa4779 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -139,6 +139,12 @@ schemadir = $(GCONF_SCHEMA_FILE_DIR)
 schema_DATA = $(schema_in_files:.schemas.in=.schemas)
 endif
 
+gsettingsschema_DATA = org.gnome.Aisleriot.gschema
+org.gnome.Aisleriot.gschema: Aisleriot.schemas
+	gsettings-schema-convert --force --gconf --xml --schema-id $(@:.gschema=) $< -o $@
+install-data-hook:
+	$(gsettingsupdateschemacache) $(gsettingsschemadir)
+
 %.service: %.service.in Makefile
 	$(AM_V_GEN) $(SED) -e "s|%bindir%|$(bindir)|" $< > $@
 
@@ -166,11 +172,13 @@ EXTRA_DIST = \
 CLEANFILES = \
 	$(BUILT_SOURCES) \
 	$(schema_DATA)	\
-	$(service_DATA)
+	$(service_DATA)	\
+	$(gsettingsschema_DATA)
 
 DISTCLEANFILES = \
 	$(schema_DATA)	\
-	$(service_DATA)
+	$(service_DATA)	\
+	$(gsettingsschema_DATA)
 
 @INTLTOOL_SCHEMAS_RULE@
 
diff --git a/src/org.gnome.Aisleriot.gschema.xml.in b/src/org.gnome.Aisleriot.gschema.xml.in
index e69de29..ee41945 100644
--- a/src/org.gnome.Aisleriot.gschema.xml.in
+++ b/src/org.gnome.Aisleriot.gschema.xml.in
@@ -0,0 +1,47 @@
+<schemalist>
+  <schema id="org.gnome.Aisleriot" path="/apps/aisleriot/">
+    <key name="card-style" type="s">
+      <default>''</default>
+      <summary>Theme file name</summary>
+      <description>The name of the file with the graphics for the cards.</description>
+    </key>
+    <key name="show-toolbar" type="b">
+      <default>true</default>
+      <summary>Whether or not to show the toolbar</summary>
+    </key>
+    <key name="show-statusbar" type="b">
+      <default>true</default>
+      <summary>Whether or not to show the status bar</summary>
+    </key>
+    <key name="click-to-move" type="b">
+      <default>false</default>
+      <summary>Select the style of control</summary>
+      <description>Select whether to drag the cards or to click on the source then the destination.</description>
+    </key>
+    <key name="sound" type="b">
+      <default>false</default>
+      <summary>Sound</summary>
+      <description>Whether or not to play event sounds.</description>
+    </key>
+    <key name="animations" type="b">
+      <default>true</default>
+      <summary>Animations</summary>
+      <description>Whether or not to animate card moves.</description>
+    </key>
+    <key name="game-file" type="s">
+      <default>'klondike.scm'</default>
+      <summary>The game file to use</summary>
+      <description>The name of the scheme file containing the solitaire game to play.</description>
+    </key>
+    <key name="statistics" type="as">
+      <default>[]</default>
+      <summary>Statistics of games played</summary>
+      <description>A list of strings that come in the form of a quintuple: name, wins, total games played, best time (in seconds) and worst time (also in seconds). Unplayed games do not need to be represented.</description>
+    </key>
+    <key name="recent-games-list" type="as">
+      <default>[]</default>
+      <summary>Recently played games</summary>
+      <description>A list of recently played games.</description>
+    </key>
+  </schema>
+</schemalist>
