diff -ruN thunar.orig/thunar-gio-extensions.c thunar/thunar-gio-extensions.c --- thunar.orig/thunar-gio-extensions.c 2015-03-08 00:00:00.000000000 +0100 +++ thunar/thunar-gio-extensions.c 2015-03-08 00:00:00.000000000 +0100 @@ -421,13 +421,13 @@ _thunar_return_val_if_fail (G_IS_FILE (file), NULL); - preferences = thunar_preferences_get (); - g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); - g_object_unref (preferences); - if (thunar_g_file_get_free_space (file, &fs_free, &fs_size) && fs_size > 0) { + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); + g_object_unref (preferences); + fs_free_str = g_format_size_full (fs_free, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); fs_size_str = g_format_size_full (fs_size, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); /* free disk space string */ diff -ruN thunar.orig/thunar-size-label.c thunar/thunar-size-label.c --- thunar.orig/thunar-size-label.c 2015-03-08 00:00:00.000000000 +0100 +++ thunar/thunar-size-label.c 2015-03-08 00:00:00.000000000 +0100 @@ -274,10 +274,6 @@ _thunar_return_if_fail (size_label->files != NULL); _thunar_return_if_fail (THUNAR_IS_FILE (size_label->files->data)); - preferences = thunar_preferences_get (); - g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); - g_object_unref (preferences); - /* cancel the pending job (if any) */ if (G_UNLIKELY (size_label->job != NULL)) { @@ -307,6 +303,10 @@ } else { + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); + g_object_unref (preferences); + /* this is going to be quick, stop and hide the spinner */ gtk_spinner_stop (GTK_SPINNER (size_label->spinner)); gtk_widget_hide (size_label->spinner); @@ -377,15 +377,15 @@ _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label)); _thunar_return_if_fail (size_label->job == job); - preferences = thunar_preferences_get (); - g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); - g_object_unref (preferences); - /* determine the total number of items */ n = file_count + directory_count + unreadable_directory_count; if (G_LIKELY (n > unreadable_directory_count)) { + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); + g_object_unref (preferences); + /* update the label */ size_string = g_format_size_full (total_size, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); text = g_strdup_printf (ngettext ("%u item, totalling %s", "%u items, totalling %s", n), n, size_string); diff -ruN thunar.orig/thunar-transfer-job.c thunar/thunar-transfer-job.c --- thunar.orig/thunar-transfer-job.c 2015-03-08 00:00:00.000000000 +0100 +++ thunar/thunar-transfer-job.c 2015-03-08 00:00:00.000000000 +0100 @@ -686,10 +686,6 @@ _thunar_return_val_if_fail (THUNAR_IS_TRANSFER_JOB (transfer_job), FALSE); - preferences = thunar_preferences_get (); - g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); - g_object_unref (preferences); - /* no target file list */ if (transfer_job->target_file_list == NULL) return TRUE; @@ -736,6 +732,10 @@ free_space = g_file_info_get_attribute_uint64 (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_FREE); if (transfer_job->total_size > free_space) { + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-file-size-binary", &file_size_binary, NULL); + g_object_unref (preferences); + size_string = g_format_size_full (transfer_job->total_size - free_space, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); succeed = thunar_job_ask_no_size (THUNAR_JOB (transfer_job), _("Error while copying to \"%s\": %s more space is "