diff --git a/gio/gsettings.c b/gio/gsettings.c index fbee36b3a..628f8b572 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -3161,6 +3161,14 @@ bind_with_mapping_invoke_get (GValue *value, g_closure_invoke (data->get_mapping_closure, &out, 2, params, /* hint = */ NULL); retval = g_value_get_boolean (&out); + if (retval) + { + const GValue *out_value = g_value_get_boxed (¶ms[0]); + + g_assert (out_value != NULL); + + g_value_copy (out_value, value); + } g_value_unset (&out); g_value_unset (¶ms[0]);