Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.cpp	(revision 77012)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.cpp	(revision 77013)
@@ -155,6 +155,6 @@
     if (!m_matchedItemList.isEmpty())
     {
-        m_iScrollToIndex = 0;
-        pTreeWidget->scrollTo(pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);
+        m_iScrollToIndex = -1;
+        goToNextPrevious(true);
     }
 }
@@ -195,27 +195,51 @@
         font.setBold(fMark);
         pMediumItem->setFont(0, font);
-    }
+
+        if (!fMark)
+            setUnderlineItemText(pMediumItem, false);
+    }
+}
+
+void UIMediumSearchWidget::setUnderlineItemText(QTreeWidgetItem* pItem, bool fUnderline)
+{
+    if (!pItem)
+        return;
+    QFont font = pItem->font(0);
+    font.setUnderline(fUnderline);
+    pItem->setFont(0, font);
+}
+
+void UIMediumSearchWidget::goToNextPrevious(bool fNext)
+{
+    if (!m_pTreeWidget || m_matchedItemList.isEmpty())
+        return;
+
+    if (m_iScrollToIndex >= 0 && m_iScrollToIndex < m_matchedItemList.size())
+        setUnderlineItemText(m_matchedItemList[m_iScrollToIndex], false);
+
+    if (fNext)
+        ++m_iScrollToIndex;
+    else
+        --m_iScrollToIndex;
+
+    if (m_iScrollToIndex >= m_matchedItemList.size())
+        m_iScrollToIndex = 0;
+    if (m_iScrollToIndex < 0)
+        m_iScrollToIndex = m_matchedItemList.size() - 1;
+
+    setUnderlineItemText(m_matchedItemList[m_iScrollToIndex], true);
+    m_pTreeWidget->scrollTo(m_pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);
+
 }
 
 void UIMediumSearchWidget::sltShowNextMatchingItem()
 {
-    if (!m_pTreeWidget)
-        return;
-    if (++m_iScrollToIndex >= m_matchedItemList.size())
-        m_iScrollToIndex = 0;
-    if (!m_matchedItemList[m_iScrollToIndex])
-        return;
-    m_pTreeWidget->scrollTo(m_pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);
+    if (m_matchedItemList.isEmpty())
+        return;
+    goToNextPrevious(true);
 }
 
 void UIMediumSearchWidget::sltShowPreviousMatchingItem()
 {
-    if (!m_pTreeWidget)
-        return;
-    if (--m_iScrollToIndex <= 0)
-        m_iScrollToIndex = m_matchedItemList.size() - 1;
-    if (!m_matchedItemList[m_iScrollToIndex])
-        return;
-    m_pTreeWidget->scrollTo(m_pTreeWidget->itemIndex(m_matchedItemList[m_iScrollToIndex]), QAbstractItemView::PositionAtCenter);
-
-}
+    goToNextPrevious(false);
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.h	(revision 77012)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumSearchWidget.h	(revision 77013)
@@ -76,5 +76,8 @@
     void    prepareWidgets();
     void    markUnmarkItems(QList<QTreeWidgetItem*> &itemList, bool fMark);
-
+    void    setUnderlineItemText(QTreeWidgetItem* pItem, bool fUnderline);
+    /** Increases (or decreases if @p fNext is false) the m_iScrollToIndex and
+     *  takes care of the necessary decoration changes to mark the current item. */
+    void    goToNextPrevious(bool fNext);
     QIComboBox       *m_pSearchComboxBox;
     QLineEdit        *m_pSearchTermLineEdit;
