diff -up src/lib/Edje.h.fix src/lib/Edje.h
--- src/lib/Edje.h.fix	2012-07-19 17:22:05.408756037 +0900
+++ src/lib/Edje.h	2012-07-19 17:22:24.544756033 +0900
@@ -2978,21 +2978,6 @@ EAPI void             edje_object_part_t
 EAPI Eina_Bool        edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part);
 
 /**
- * @brief Set the viewport region of the text.
- *
- * @param viewport A valid Evas_Object geometry
- * @param part The part name
- * @param x A pointer to a variable where to set the viewport's x
- * @param y A pointer to a variable where to set the viewport's y
- * @param w A pointer to a variable where to set the viewport's width
- * @param h A pointer to a variable where to set the viewport's height
- *
- * Viewport region is used for showing or hiding text selection handlers.
- */
-EAPI void             edje_object_part_text_viewport_region_set     (const Evas_Object *obj, const char *part, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
-
-
-/**
  * Add a filter function for newly inserted text.
  *
  * Whenever text is inserted (not the same as set) into the given @p part,
diff -up src/lib/edje_entry.c.fix src/lib/edje_entry.c
--- src/lib/edje_entry.c.fix	2012-07-19 17:19:43.076756054 +0900
+++ src/lib/edje_entry.c	2012-07-19 17:20:42.656756047 +0900
@@ -21,7 +21,6 @@ struct _Entry
    Evas_Object *handler_start;
    Evas_Object *handler_end;
    Evas_Coord ox, oy;
-   Eina_Rectangle *region_vp;
    Evas_Textblock_Cursor *cursor;
    Evas_Textblock_Cursor *sel_start, *sel_end;
    Evas_Textblock_Cursor *cursor_user, *cursor_user_extra;
@@ -637,48 +636,17 @@ _sel_update(Evas_Textblock_Cursor *c __U
                }
              if (en->rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_EXPLICIT)
                {
-                  Evas_Coord nx, ny;
-
                   if (li == 1)
                     {
                        evas_object_move(en->handler_start, x + r->x, y + r->y);
                        evas_object_resize(en->handler_start, 0, r->h);
-                       edje_object_signal_emit(en->handler_start, "edje,handler,hide", "edje");
-
-                       nx = x + r->x;
-                       ny = y + r->y + r->h;
-
-                       if (eina_rectangle_is_empty(en->region_vp))
-                         {
-                            if ((en->region_vp->x == -1) && (en->region_vp->y == -1))
-                              edje_object_signal_emit(en->handler_start, "edje,handler,show", "edje");
-                         }
-                       else
-                         {
-                            if (eina_rectangle_coords_inside(en->region_vp, nx, ny))
-                              edje_object_signal_emit(en->handler_start, "edje,handler,show", "edje");
-                         }
+                       edje_object_signal_emit(en->handler_start, "edje,handler,show", "edje");
                     }
                   if (li == lc)
                     {
                        evas_object_move(en->handler_end, x + r->x + r->w, y + r->y);
                        evas_object_resize(en->handler_end, 0, r->h);
-                       edje_object_signal_emit(en->handler_end, "edje,handler,hide", "edje");
-
-                       nx = x + r->x + r->w;
-                       ny = y + r->y + r->h;
-
-                       if (eina_rectangle_is_empty(en->region_vp))
-                         {
-                            if ((en->region_vp->x == -1) && (en->region_vp->y == -1))
-                              edje_object_signal_emit(en->handler_end, "edje,handler,show", "edje");
-                         }
-                       else
-                         {
-                            if (eina_rectangle_coords_inside(en->region_vp, nx, ny))
-                              edje_object_signal_emit(en->handler_end, "edje,handler,show", "edje");
-                         }
-
+                       edje_object_signal_emit(en->handler_end, "edje,handler,show", "edje");
                     }
                }
              *(&(sel->rect)) = *r;
@@ -2438,11 +2406,6 @@ _edje_entry_real_part_shutdown(Edje_Real
         ecore_timer_del(en->pw_timer);
         en->pw_timer = NULL;
      }
-   if (en->region_vp)
-     {
-        eina_rectangle_free(en->region_vp);
-        en->pw_timer = NULL;
-     }
 
 #ifdef HAVE_ECORE_IMF
    if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE)
@@ -2745,18 +2708,6 @@ _edje_entry_items_list(Edje_Real_Part *r
 }
 
 void
-_edje_entry_viewport_region_set(Edje_Real_Part *rp, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
-{
-   Entry *en = rp->entry_data;
-   if (!en) return;
-
-   if (en->region_vp)
-     eina_rectangle_free(en->region_vp);
-
-   en->region_vp = eina_rectangle_new(x, y, w, h);
-}
-
-void
 _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch)
 {
    Evas_Coord x, y, w, h, xx, yy, ww, hh;
diff -up src/lib/edje_util.c.fix src/lib/edje_util.c
--- src/lib/edje_util.c.fix	2012-07-19 17:21:56.520756038 +0900
+++ src/lib/edje_util.c	2012-07-19 17:22:24.540756033 +0900
@@ -1644,21 +1644,6 @@ edje_object_part_text_item_geometry_get(
 }
 
 EAPI void
-edje_object_part_text_viewport_region_set(const Evas_Object *obj, const char *part, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
-{
-   Edje *ed;
-   Edje_Real_Part *rp;
-
-   ed = _edje_fetch(obj);
-   if ((!ed) || (!part)) return;
-   rp = _edje_real_part_recursive_get(ed, (char *)part);
-   if (!rp) return;
-   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
-     _edje_entry_viewport_region_set(rp, x, y, w, h);
-   return;
-}
-
-EAPI void
 edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
 {
    Edje *ed;
