diff --git a/gdk/wayland/gdkscreen-wayland.c b/gdk/wayland/gdkscreen-wayland.c
index b8516ee..93ecf10 100644
--- a/gdk/wayland/gdkscreen-wayland.c
+++ b/gdk/wayland/gdkscreen-wayland.c
@@ -66,6 +66,7 @@ struct _GdkWaylandScreen
 
   GHashTable *settings;
   GsdXftSettings xft_settings;
+  gboolean use_gtksettings;
 
   guint32    shell_capabilities;
 };
@@ -490,11 +491,15 @@ init_settings (GdkScreen *screen)
   gint i;
 
   screen_wayland->settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref);
+  screen_wayland->use_gtksettings = g_getenv("GDK_WAYLAND_USE_GTKSETTINGS") ? true : false;
 
   source = g_settings_schema_source_get_default ();
   if (source == NULL)
     return;
 
+  if (screen_wayland->use_gtksettings)
+    return;
+
   for (i = 0; i < G_N_ELEMENTS (translations); i++)
     {
       schema = g_settings_schema_source_lookup (source, translations[i].schema, TRUE);
@@ -654,9 +659,14 @@ gdk_wayland_screen_get_setting (GdkScreen   *screen,
                                 GValue      *value)
 {
   TranslationEntry *entry;
+  GdkWaylandScreen *screen_wayland;
 
   g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
 
+  screen_wayland = GDK_WAYLAND_SCREEN (screen);
+  if (screen_wayland->use_gtksettings)
+    return FALSE;
+
   entry = find_translation_entry_by_setting (name);
   if (entry != NULL)
     {
