Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.cpp	(revision 70475)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.cpp	(revision 70476)
@@ -66,4 +66,5 @@
     /* We start the search from the end of the doc. assuming log's end is more interesting: */
     search(BackwardSearch, true);
+    emit sigHighlightingUpdated();
 }
 
@@ -109,5 +110,5 @@
 }
 
-void UIVMLogViewerSearchPanel::findCurrent(const QString &strSearchString)
+void UIVMLogViewerSearchPanel::sltSearchTextChanged(const QString &strSearchString)
 {
     /* Enable/disable Next-Previous buttons as per search-string validity: */
@@ -115,12 +116,13 @@
     m_pNextPrevButtons->setEnabled(1, strSearchString.length());
 
-    /* If search-string is valid: */
-    if (strSearchString.length())
+    /* If search-string is not empty: */
+    if (!strSearchString.isEmpty())
     {
         /* Reset the position to force the search restart from the document's end: */
         m_iSearchPosition = 0;
         search(BackwardSearch, true);
-    }
-    /* If search-string is not valid, reset cursor position: */
+        emit sigHighlightingUpdated();
+    }
+    /* If search-string is empty, reset cursor position: */
     else
     {
@@ -135,4 +137,6 @@
             pBrowser->setTextCursor(cursor);
         }
+        m_iSearchPosition = -1;
+        clearHighlighting(-1);
     }
 }
@@ -156,9 +160,10 @@
     else
     {
+        /* we need this check not to remove the 'not found' label
+           when the user toggles with this checkbox: */
         if (m_iMatchCount != 0)
-            m_iMatchCount = -1;
-
-        m_matchLocationVector.clear();
-        pDocument->undo();
+            clearHighlighting(-1);
+        else
+            clearHighlighting(0);
     }
     configureInfoLabels();
@@ -340,5 +345,5 @@
     /* Prepare connections: */
     connect(m_pCloseButton, &UIMiniCancelButton::clicked, this, &UIVMLogViewerSearchPanel::hide);
-    connect(m_pSearchEditor, &UISearchField::textChanged, this, &UIVMLogViewerSearchPanel::findCurrent);
+    connect(m_pSearchEditor, &UISearchField::textChanged, this, &UIVMLogViewerSearchPanel::sltSearchTextChanged);
     connect(m_pNextPrevButtons, &UIRoundRectSegmentedButton::clicked, this, &UIVMLogViewerSearchPanel::find);
     connect(m_pHighlightAllCheckBox, &QCheckBox::stateChanged,
@@ -544,5 +549,4 @@
    m_iSearchPosition = resultCursor.position();
    configureInfoLabels();
-   emit sigHighlightingUpdated();
 }
 
@@ -555,4 +559,20 @@
 {
     search(BackwardSearch, false);
+}
+
+void UIVMLogViewerSearchPanel::clearHighlighting(int count)
+{
+    m_iMatchCount = count;
+    m_matchLocationVector.clear();
+
+    QPlainTextEdit *pBrowser = m_pViewer->currentLogPage();
+    if(pBrowser)
+    {
+        QTextDocument* pDocument = pBrowser->document();
+        if(pDocument)
+            pDocument->undo();
+    }
+    configureInfoLabels();
+    emit sigHighlightingUpdated();
 }
 
@@ -560,6 +580,6 @@
                                             const QString &searchString)
 {
-    m_iMatchCount = 0;
-    m_matchLocationVector.clear();
+    clearHighlighting(0);
+
     if (!pDocument)
         return;
@@ -567,5 +587,4 @@
         return;
 
-    pDocument->undo();
     QTextCursor highlightCursor(pDocument);
     QTextCharFormat colorFormat(highlightCursor.charFormat());
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.h	(revision 70475)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.h	(revision 70476)
@@ -67,5 +67,5 @@
     /** Handles textchanged signal from search-editor.
       * @param  strSearchString  Specifies search-string. */
-    void findCurrent(const QString &strSearchString);
+    void sltSearchTextChanged(const QString &strSearchString);
     void sltHighlightAllCheckBox();
     void sltCaseSentitiveCheckBox();
@@ -90,5 +90,7 @@
     /** Handles Qt show @a pEvent. */
     void showEvent(QShowEvent *pEvent);
-
+    /** Clear the result of highlight */
+    void clearHighlight();
+    void clearHighlighting(int count);
 
     /** Search routine.
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 70475)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 70476)
@@ -105,5 +105,5 @@
             QPainter painter(this);
             painter.setRenderHint(QPainter::Antialiasing, true);
-            painter.setPen(QPen(QColor(255, 0, 0, 255), 1.2f));
+            painter.setPen(QPen(QColor(255, 0, 0, 75), 1.1f));
             painter.drawLine(p1, p2);
         }
@@ -115,4 +115,5 @@
     QVector<float> m_markingsVector;
 };
+
 UIVMLogViewerWidget::UIVMLogViewerWidget(EmbedTo enmEmbedding, QWidget *pParent /* = 0 */, const CMachine &machine /* = CMachine() */)
     : QIWithRetranslateUI<QWidget>(pParent)
