diff --git a/common/html_messagebox.cpp b/common/html_messagebox.cpp
index 874897f13c..d7cfdd17a6 100644
--- a/common/html_messagebox.cpp
+++ b/common/html_messagebox.cpp
@@ -41,6 +41,14 @@ HTML_MESSAGE_BOX::HTML_MESSAGE_BOX( wxWindow* parent, const wxString& aTitle) :
 }
 
 
+HTML_MESSAGE_BOX::~HTML_MESSAGE_BOX()
+{
+    // Prevent wxWidgets bug which fails to release when closing the window on an <esc>.
+    if( m_htmlWindow->HasCapture() )
+        m_htmlWindow->ReleaseMouse();
+}
+
+
 void HTML_MESSAGE_BOX::OnCloseButtonClick( wxCommandEvent& event )
 {
     // the dialog can be shown modal or not modal.
diff --git a/include/html_messagebox.h b/include/html_messagebox.h
index 6837c3adc4..c1ea3c2199 100644
--- a/include/html_messagebox.h
+++ b/include/html_messagebox.h
@@ -44,10 +44,8 @@ protected:
     void OnCloseButtonClick( wxCommandEvent& event ) override;
 
 public:
-    /**
-     * Constructor
-     */
     HTML_MESSAGE_BOX( wxWindow* parent, const wxString& aTitle );
+    ~HTML_MESSAGE_BOX() override;
 
     /**
      * set the dialog size, using a "logical value.