diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index afa997fa88..de0ef50c0b 100755
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -2145,3 +2145,25 @@ void LLPanelObjectInventory::clearItemIDs()
mItemMap.clear();
}
+// Fix broken return and delete key in task inventory
+BOOL LLPanelObjectInventory::handleKeyHere(KEY key, MASK mask)
+{
+ BOOL handled = FALSE;
+ switch (key)
+ {
+ case KEY_RETURN:
+ if (mask == MASK_NONE)
+ {
+ LLPanelObjectInventory::doToSelected(LLSD("task_open"));
+ handled = TRUE;
+ }
+ break;
+ case KEY_DELETE:
+ case KEY_BACKSPACE:
+ LLPanelObjectInventory::doToSelected(LLSD("delete"));
+ handled = TRUE;
+ break;
+ }
+ return handled;
+}
+// Fix broken return and delete key in task inventory
diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h
index f497c695b3..a15ee9304a 100755
--- a/indra/newview/llpanelobjectinventory.h
+++ b/indra/newview/llpanelobjectinventory.h
@@ -71,6 +71,9 @@ public:
virtual void deleteAllChildren();
virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string& tooltip_msg);
+ // Fix broken return and delete key in task inventory
+ virtual BOOL handleKeyHere(KEY key, MASK mask);
+
/*virtual*/ void onFocusLost();
/*virtual*/ void onFocusReceived();