diff --git a/src/egg-idletime.c b/src/egg-idletime.c
index 36e9c413fd810dee15ef85a05c3b567e9507b3f3..0f4118652a8d5bac15763879ab60b1ac57408dd1 100644
--- a/src/egg-idletime.c
+++ b/src/egg-idletime.c
@@ -331,8 +331,8 @@ egg_idletime_alarm_free (EggIdletime *idletime, EggIdletimeAlarm *eggalarm)
   if (eggalarm->xalarm)
     XSyncDestroyAlarm (idletime->priv->dpy, eggalarm->xalarm);
   g_object_unref (eggalarm->idletime);
-  g_free (eggalarm);
   g_ptr_array_remove (idletime->priv->array, eggalarm);
+  g_free (eggalarm);
   return TRUE;
 }