diff -Nur geeqie-1.0alpha3-orig/src/utilops.c geeqie-1.0alpha3/src/utilops.c
--- geeqie-1.0alpha3-orig/src/utilops.c 2009-01-25 19:53:32.000000000 +0100
+++ geeqie-1.0alpha3/src/utilops.c 2009-02-08 00:01:10.000000000 +0100
@@ -589,8 +589,16 @@
{
UtilityData *ud = data;
- /* this is removed when ud is destroyed */
- if (ud->perform_idle_id == -1) ud->perform_idle_id = g_idle_add(file_util_perform_ci_internal, ud);
+ if (ud->perform_idle_id == -1)
+ {
+ /* this function was called directly
+ just setup idle callback and wait until we are called again
+ */
+
+ /* this is removed when ud is destroyed */
+ ud->perform_idle_id = g_idle_add(file_util_perform_ci_internal, ud);
+ return TRUE;
+ }
g_assert(ud->flist);