Index: src/lib/edje_entry.c
===================================================================
--- src/lib/edje_entry.c	(revision 74374)
+++ src/lib/edje_entry.c	(working copy)
@@ -1991,6 +1991,7 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNU
    Entry *en;
    Evas_Coord x, y, w, h;
    Evas_Textblock_Cursor *tc;
+   Eina_Bool domove = EINA_FALSE;
    if (!rp) return;
    en = rp->entry_data;
    if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
@@ -2009,7 +2010,10 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNU
      }
 #endif
 
-   if (en->selecting)
+   if (en->selecting) domove = EINA_TRUE;
+   if ((ev->buttons == 1) && !(ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)) domove = EINA_TRUE;
+
+   if (domove)
      {
         tc = evas_object_textblock_cursor_new(rp->object);
         evas_textblock_cursor_copy(en->cursor, tc);
@@ -2041,6 +2045,16 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNU
                     _curs_lin_end(en->cursor, rp->object, en);
                }
           }
+        if (evas_textblock_cursor_compare(tc, en->cursor))
+          {
+             _edje_emit(rp->edje, "cursor,changed", rp->part->name);
+             _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
+          }
+        evas_textblock_cursor_free(tc);
+     }
+
+   if (en->selecting)
+     {
         if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT)
           {
              if (en->select_allow)
@@ -2067,18 +2081,11 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNU
              if (en->have_selection)
                _sel_update(en->cursor, rp->object, en);
           }
-        if (evas_textblock_cursor_compare(tc, en->cursor))
-          {
-             _edje_emit(rp->edje, "cursor,changed", rp->part->name);
-             _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
-          }
-        evas_textblock_cursor_free(tc);
 
         _edje_entry_imf_context_reset(rp);
         _edje_entry_imf_cursor_info_set(en);
-
-        _edje_entry_real_part_configure(rp);
      }
+   _edje_entry_real_part_configure(rp);
 }
 
 static void
