Index: elementary/src/lib/elm_genlist.c
===================================================================
--- elementary/src/lib/elm_genlist.c	(revision 66004)
+++ elementary/src/lib/elm_genlist.c	(working copy)
@@ -2628,7 +2628,7 @@
         if (sd->resize_job) ecore_job_del(sd->resize_job);
         sd->resize_job = ecore_job_add(_pan_resize_job, sd);
      }
-   sd->wd->pan_resized = EINA_TRUE;
+   sd->wd->pan_changed = EINA_TRUE;
    evas_object_smart_changed(obj);
    if (sd->wd->calc_job) ecore_job_del(sd->wd->calc_job);
    sd->wd->calc_job = NULL;
@@ -2651,10 +2651,10 @@
    if (!sd) return;
    evas_event_freeze(evas_object_evas_get(obj));
 
-   if (sd->wd->pan_resized)
+   if (sd->wd->pan_changed)
      {
         _calc_job(sd->wd);
-        sd->wd->pan_resized = EINA_FALSE;
+        sd->wd->pan_changed = EINA_FALSE;
      }
 
    evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
@@ -2705,8 +2705,11 @@
    Pan *sd = evas_object_smart_data_get(obj);
 
    if (!sd) return;
+
+   sd->wd->pan_changed = EINA_TRUE;
+   evas_object_smart_changed(obj);
    if (sd->wd->calc_job) ecore_job_del(sd->wd->calc_job);
-   sd->wd->calc_job = ecore_job_add(_calc_job, sd->wd);
+   sd->wd->calc_job = NULL;
 }
 
 static void
@@ -3427,6 +3430,13 @@
           {
              showme = _item_block_recalc(it->item->block, it->item->block->num, EINA_TRUE);
              it->item->block->changed = 0;
+             if(wd->pan_changed)
+               {
+                  if (wd->calc_job) ecore_job_del(wd->calc_job);
+                  wd->calc_job = NULL;
+                  _calc_job(wd);
+                  wd->pan_changed = EINA_FALSE;
+               }
           }
         if (showme) it->item->block->showme = EINA_TRUE;
         if (eina_inlist_count(wd->blocks) > 1)
@@ -3870,6 +3880,7 @@
           }
      }
    wd->clear_me = 0;
+   wd->pan_changed = EINA_TRUE;
    if (wd->calc_job)
      {
         ecore_job_del(wd->calc_job);
Index: elementary/src/lib/elm_genlist.h
===================================================================
--- elementary/src/lib/elm_genlist.h	(revision 66004)
+++ elementary/src/lib/elm_genlist.h	(working copy)
@@ -132,7 +132,7 @@
    Eina_Bool         swipe : 1;
    Eina_Bool         reorder_pan_move : 1;
    Eina_Bool         auto_scroll_enabled : 1;
-   Eina_Bool         pan_resized : 1;
+   Eina_Bool         pan_changed : 1;
    Eina_Bool         requeued : 1; /* this is set to EINA_TRUE when the item is re-queued. this happens when the item is un-queued but the rel item is still in the queue. this item will be processed later. */
    struct
    {
