diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp
index c1b45cbc506f425642527a6e8ab2fcbe59736fd6..890edf9a1f1917baf8b899a6eef222338edcc234 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.cpp
+++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp
@@ -85,19 +85,22 @@ DebuggingHelperWidget::DebuggingHelperWidget()
 
 void DebuggingHelperWidget::setState(State s)
 {
-    bool validQt = true;
-    if (s & InvalidQt)
-        validQt = false;
-    m_statusLabel->setVisible(validQt);
-    m_showLog->setVisible(validQt);
-    m_rebuild->setVisible(validQt);
-    if (!validQt)
+    if (s & InvalidQt) {
+        m_statusLabel->setVisible(false);
+        m_showLog->setVisible(false);
+        m_rebuild->setVisible(false);
         return;
-    if (s & Error)
-        m_statusLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
-    else
-        m_statusLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
-    m_showLog->setVisible(s & ShowLog);
+    } else {
+        m_statusLabel->setVisible(true);
+        m_statusLabel->setText("");
+        m_showLog->setVisible(true);
+        m_rebuild->setVisible(true);
+        if (s & Error)
+            m_statusLabel->setPixmap(QPixmap(":/extensionsystem/images/error.png"));
+        else
+            m_statusLabel->setPixmap(QPixmap(":/extensionsystem/images/ok.png"));
+        m_showLog->setVisible(s & ShowLog);
+    }
 }
 
 
@@ -496,12 +499,13 @@ void QtDirWidget::buildDebuggingHelper()
         return;
 
     QString result = m_versions.at(index)->buildDebuggingHelperLibrary();
+
     QTreeWidgetItem *item = m_ui.qtdirList->topLevelItem(index);
     item->setData(2, Qt::UserRole, result);
-
     DebuggingHelperWidget *dhw =
         qobject_cast<DebuggingHelperWidget *>(m_ui.qtdirList->itemWidget(item, 2));
     if (dhw) {
+
         if (m_versions.at(index)->hasDebuggingHelper())
             dhw->setState(DebuggingHelperWidget::State(DebuggingHelperWidget::Ok | DebuggingHelperWidget::ShowLog));
         else
@@ -904,15 +908,16 @@ QString QtVersion::dumperLibrary() const
     QStringList directories;
     directories
             << (path() + "/qtc-debugging-helper/")
-            << (QApplication::applicationDirPath() + "../qtc-debugging-helper/" + QString::number(hash))
-            << (QDesktopServices::StandardLocation(QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash));
+            << (QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash)) + "/"
+            << (QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash)) + "/";
     foreach(const QString &directory, directories) {
 #if defined(Q_OS_WIN)
-        QFileInfo fi(directory + "/debug/gdbmacros.dll");
+        QFileInfo fi(directory + "debug/gdbmacros.dll");
 #elif defined(Q_OS_MAC)
-        QFileInfo fi(directory + "/libgdbmacros.dylib");
+        QFileInfo fi(directory + "libgdbmacros.dylib");
 #else // generic UNIX
-        QFileInfo fi(directory + "/libgdbmacros.so");
+        QFileInfo fi(directory + "libgdbmacros.so");
+        qDebug()<<"Trying"<<(directory + "libgdbmacros.so");
 #endif
         if (fi.exists())
             return fi.filePath();
@@ -1416,8 +1421,8 @@ QString QtVersion::buildDebuggingHelperLibrary()
     QStringList directories;
     directories
             << path() + "/qtc-debugging-helper/"
-            << QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash)
-            << QDesktopServices::storageLocation (QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash);
+            << QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash) +"/"
+            << QDesktopServices::storageLocation (QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash) +"/";
 
     QStringList files;
     files << "gdbmacros.cpp" << "gdbmacros.pro"