Index: src/lib/elm_entry.c
===================================================================
--- src/lib/elm_entry.c	(revision 74411)
+++ src/lib/elm_entry.c	(working copy)
@@ -1163,6 +1163,23 @@ _dismissed(void *data, Evas_Object *obj __UNUSED__
 }
 
 static void
+_selectall(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+{
+   Widget_Data *wd = elm_widget_data_get(data);
+   if (!wd) return;
+   wd->selmode = EINA_TRUE;
+   edje_object_part_text_select_none(wd->ent, "elm.text");
+   if (!_elm_config->desktop_entry)
+     {
+        if (!wd->password)
+          edje_object_part_text_select_all(wd->ent, "elm.text");
+     }
+   edje_object_signal_emit(wd->ent, "elm,state,select,on", "elm");
+   if (!_elm_config->desktop_entry)
+     elm_widget_scroll_hold_push(data);
+}
+
+static void
 _select(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Widget_Data *wd = elm_widget_data_get(data);
@@ -1384,6 +1401,12 @@ _menu_press(Evas_Object *obj)
                          elm_hoversel_item_add(wd->hoversel, E_("Select"), NULL, ELM_ICON_NONE,
                                                _select, obj);
                     }
+                  if (!_elm_config->desktop_entry)
+                    {
+                       if (!wd->password)
+                         elm_hoversel_item_add(wd->hoversel, E_("Select All"), NULL, ELM_ICON_NONE,
+                                               _selectall, obj);
+                    }
                   if (elm_selection_selection_has_owner())
                     {
                        if (wd->editable)
