diff --git a/src/plugins/bazaar/bazaarcommitwidget.cpp b/src/plugins/bazaar/bazaarcommitwidget.cpp
index 3bd3869cf59b4f4effed66e89552aa122e8176f5..5d98fa6728b636ca197137477a2b4546ac871306 100644
--- a/src/plugins/bazaar/bazaarcommitwidget.cpp
+++ b/src/plugins/bazaar/bazaarcommitwidget.cpp
@@ -36,6 +36,7 @@
 #include <texteditor/texteditorsettings.h>
 #include <texteditor/fontsettings.h>
 #include <texteditor/texteditorconstants.h>
+#include <utils/qtcassert.h>
 
 #include <QtGui/QSyntaxHighlighter>
 #include <QtGui/QTextEdit>
@@ -79,7 +80,7 @@ BazaarSubmitHighlighter::BazaarSubmitHighlighter(QTextEdit * parent) :
     m_keywordPattern(QLatin1String("^\\w+:")),
     m_hashChar(QLatin1Char('#'))
 {
-    Q_ASSERT(m_keywordPattern.isValid());
+    QTC_CHECK(m_keywordPattern.isValid());
 }
 
 void BazaarSubmitHighlighter::highlightBlock(const QString &text)
diff --git a/src/plugins/bazaar/pullorpushdialog.cpp b/src/plugins/bazaar/pullorpushdialog.cpp
index 4db02fdc21b216e1f3d38755aa1c1bd3dcba33a2..bad6f7920b4fd1d48f26da888b875dcffd282177 100644
--- a/src/plugins/bazaar/pullorpushdialog.cpp
+++ b/src/plugins/bazaar/pullorpushdialog.cpp
@@ -33,6 +33,7 @@
 #include "pullorpushdialog.h"
 #include "ui_pullorpushdialog.h"
 
+#include <utils/qtcassert.h>
 
 using namespace Bazaar::Internal;
 
@@ -87,19 +88,19 @@ QString PullOrPushDialog::revision() const
 
 bool PullOrPushDialog::isLocalOptionEnabled() const
 {
-    Q_ASSERT(m_mode == PullMode);
+    QTC_ASSERT(m_mode == PullMode, return false);
     return m_ui->localCheckBox->isChecked();
 }
 
 bool PullOrPushDialog::isUseExistingDirectoryOptionEnabled() const
 {
-    Q_ASSERT(m_mode == PushMode);
+    QTC_ASSERT(m_mode == PushMode, return false);
     return m_ui->useExistingDirCheckBox->isChecked();
 }
 
 bool PullOrPushDialog::isCreatePrefixOptionEnabled() const
 {
-    Q_ASSERT(m_mode == PushMode);
+    QTC_ASSERT(m_mode == PushMode, return false);
     return m_ui->createPrefixCheckBox->isChecked();
 }
 
diff --git a/src/plugins/coreplugin/vcsmanager.cpp b/src/plugins/coreplugin/vcsmanager.cpp
index c1ba283cf3ee359dee54718e1eb90a1f30a67a25..b3a4c5134a21ffd86473dfd1de8680c6fcd4e608 100644
--- a/src/plugins/coreplugin/vcsmanager.cpp
+++ b/src/plugins/coreplugin/vcsmanager.cpp
@@ -85,9 +85,9 @@ public:
 
     VcsInfo *findInCache(const QString &dir)
     {
-        Q_ASSERT(QDir(dir).isAbsolute());
-        Q_ASSERT(!dir.endsWith(QLatin1Char('/')));
-        Q_ASSERT(QDir::fromNativeSeparators(dir) == dir);
+        QTC_ASSERT(QDir(dir).isAbsolute(), return 0);
+        QTC_ASSERT(!dir.endsWith(QLatin1Char('/')), return 0);
+        QTC_ASSERT(QDir::fromNativeSeparators(dir) == dir, return 0);
 
         const QMap<QString, VcsInfo *>::const_iterator it = m_cachedMatches.constFind(dir);
         if (it != m_cachedMatches.constEnd())
diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp
index e26627832a287ca8a5c6c66200e0c762ffede006..6dbf297c4f04d0cc404136b08fa3b663d6f18eee 100644
--- a/src/plugins/git/branchdialog.cpp
+++ b/src/plugins/git/branchdialog.cpp
@@ -39,6 +39,7 @@
 #include "stashdialog.h" // Label helpers
 
 #include <utils/checkablemessagebox.h>
+#include <utils/qtcassert.h>
 #include <vcsbase/vcsbaseoutputwindow.h>
 
 #include <QtGui/QItemSelectionModel>
@@ -151,7 +152,7 @@ void BranchDialog::add()
 void BranchDialog::checkout()
 {
     QModelIndex idx = selectedIndex();
-    Q_ASSERT(m_model->isLocal(idx));
+    QTC_CHECK(m_model->isLocal(idx));
 
     m_model->checkoutBranch(idx);
     enableButtons();
@@ -161,7 +162,7 @@ void BranchDialog::checkout()
 void BranchDialog::remove()
 {
     QModelIndex selected = selectedIndex();
-    Q_ASSERT(selected != m_model->currentBranch()); // otherwise the button would not be enabled!
+    QTC_CHECK(selected != m_model->currentBranch()); // otherwise the button would not be enabled!
 
     QString branchName = m_model->branchName(selected);
     if (branchName.isEmpty())
diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp
index 30ec48343ebf3a21ef6d1d7e2c3d23078a88e699..b61d2e1ac7ca2f506a8edc63ec78194388a954c4 100644
--- a/src/plugins/git/branchmodel.cpp
+++ b/src/plugins/git/branchmodel.cpp
@@ -33,6 +33,7 @@
 #include "branchmodel.h"
 #include "gitclient.h"
 
+#include <utils/qtcassert.h>
 #include <vcsbase/vcsbaseoutputwindow.h>
 
 #include <QtGui/QFont>
@@ -103,7 +104,7 @@ public:
 
     QStringList fullName() const
     {
-        Q_ASSERT(isLeaf());
+        QTC_ASSERT(isLeaf(), return QStringList());
 
         QStringList fn;
         QList<const BranchNode *> nodes;
@@ -172,7 +173,7 @@ BranchModel::BranchModel(GitClient *client, QObject *parent) :
     m_client(client),
     m_rootNode(new BranchNode)
 {
-    Q_ASSERT(m_client);
+    QTC_CHECK(m_client);
     m_rootNode->append(new BranchNode(tr("Local Branches")));
 }
 
diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp
index c69a8807d5176903f2ab706de7fbc963e0e9bcdf..d8de2ae54ae02bbf80eaf11e5317d73086848e09 100644
--- a/src/plugins/git/commitdata.cpp
+++ b/src/plugins/git/commitdata.cpp
@@ -113,8 +113,8 @@ static CommitData::FileState stateFor(const QChar &c)
 
 static bool checkLine(const QString &stateInfo, const QString &file, QList<CommitData::StateFilePair> *files)
 {
-    Q_ASSERT(stateInfo.count() == 2);
-    Q_ASSERT(files);
+    QTC_ASSERT(stateInfo.count() == 2, return false);
+    QTC_ASSERT(files, return false);
 
     if (stateInfo == "??") {
         files->append(qMakePair(CommitData::UntrackedFile, file));
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 568f84510932be254ba5ba2d0c05346eafa227d9..6ad9ede5b4998149479f28b3770ab4c377d09b70 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -238,7 +238,7 @@ public:
 
     void setEditor(VcsBase::VcsBaseEditorWidget *editor)
     {
-        Q_ASSERT(editor);
+        QTC_ASSERT(editor, return);
         m_editor = editor;
     }
 
@@ -354,7 +354,7 @@ GitClient::GitClient(GitSettings *settings) :
     m_repositoryChangedSignalMapper(0),
     m_settings(settings)
 {
-    Q_ASSERT(settings);
+    QTC_CHECK(settings);
     connect(m_core, SIGNAL(saveSettingsRequested()), this, SLOT(saveSettings()));
 }
 
@@ -411,7 +411,7 @@ VcsBase::VcsBaseEditorWidget *GitClient::createVcsEditor(const Core::Id &id,
                                                          QWidget *configWidget) const
 {
     VcsBase::VcsBaseEditorWidget *rc = 0;
-    Q_ASSERT(!findExistingVCSEditor(registerDynamicProperty, dynamicPropertyValue));
+    QTC_CHECK(!findExistingVCSEditor(registerDynamicProperty, dynamicPropertyValue));
 
     // Create new, set wait message, set up with source and codec
     Core::IEditor *outputEditor = m_core->editorManager()->openEditorWithContents(id, &title, m_msgWait);
@@ -1553,7 +1553,7 @@ QStringList GitClient::synchronousRepositoryBranches(const QString &repositoryUR
         // split "82bfad2f51d34e98b18982211c82220b8db049b<tab>refs/heads/master"
         foreach(const QString &line, resp.stdOut.split(QLatin1Char('\n'))) {
             if (line.endsWith("\tHEAD")) {
-                Q_ASSERT(headSha.isNull());
+                QTC_CHECK(headSha.isNull());
                 headSha = line.left(line.indexOf(QChar('\t')));
                 continue;
             }
diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp
index 42dd3afccfc57d4581938527b0b8a8b84c09a462..62809804ad3d570188041e03920e75881a5125fd 100644
--- a/src/plugins/git/giteditor.cpp
+++ b/src/plugins/git/giteditor.cpp
@@ -171,17 +171,17 @@ static QByteArray removeAnnotationDate(const QByteArray &b)
         return QByteArray(b);
 
     // Copy over the parts that have not changed into a new byte array
-    Q_ASSERT(b.size() >= parenPos);
     QByteArray result;
+    QTC_ASSERT(b.size() >= parenPos, return result);
     int prevPos = 0;
     int pos = b.indexOf('\n', 0) + 1;
     forever {
-        Q_ASSERT(prevPos < pos);
+        QTC_CHECK(prevPos < pos);
         int afterParen = prevPos + parenPos;
         result.append(b.constData() + prevPos, datePos);
         result.append(b.constData() + afterParen, pos - afterParen);
         prevPos = pos;
-        Q_ASSERT(prevPos != 0);
+        QTC_CHECK(prevPos != 0);
         if (pos == b.size())
             break;
 
diff --git a/src/plugins/git/gitorious/gitorious.cpp b/src/plugins/git/gitorious/gitorious.cpp
index 0363196d8d087341df08cbe657393e076481ba57..d3e66e5cfb7942c884c65ee56077f413677ce40a 100644
--- a/src/plugins/git/gitorious/gitorious.cpp
+++ b/src/plugins/git/gitorious/gitorious.cpp
@@ -39,6 +39,7 @@
 
 #include <QtNetwork/QNetworkReply>
 
+#include <utils/qtcassert.h>
 #include <utils/networkaccessmanager.h>
 
 enum { debug = 0 };
@@ -347,7 +348,7 @@ GitoriousRepository GitoriousProjectReader::readRepository(QXmlStreamReader &rea
 
 void GitoriousProjectReader::readUnknownElement(QXmlStreamReader &reader)
 {
-    Q_ASSERT(reader.isStartElement());
+    QTC_ASSERT(reader.isStartElement(), return);
 
     while (!reader.atEnd()) {
         reader.readNext();
@@ -446,7 +447,7 @@ void Gitorious::listCategoriesReply(int index, QByteArray dataB)
         const QString data = QString::fromUtf8(dataB);
         // Cut out the contents of the anchors
         QRegExp pattern = QRegExp(QLatin1String("<a href=[^>]+>([^<]+)</a>"));
-        Q_ASSERT(pattern.isValid());
+        QTC_CHECK(pattern.isValid());
         GitoriousHost::CategoryList &categories = m_hosts[index].categories;
         for (int pos = pattern.indexIn(data) ; pos != -1; ) {
             const QString cat = pattern.cap(1);
diff --git a/src/plugins/git/gitorious/gitoriousprojectwidget.cpp b/src/plugins/git/gitorious/gitoriousprojectwidget.cpp
index 6eb6a31db8c65e7b9f9ec21a09859bfdccf5f8fa..8bc8cc7e540fd7086f16c10daeb83148ff04967f 100644
--- a/src/plugins/git/gitorious/gitoriousprojectwidget.cpp
+++ b/src/plugins/git/gitorious/gitoriousprojectwidget.cpp
@@ -232,7 +232,7 @@ void GitoriousProjectWidget::setDescription(const QString &description,
         // Should the text contain an URL, extract
         // Do not fall for "(http://XX)", strip special characters
         static const QRegExp urlRegExp(QLatin1String("(http://[\\w\\.-]+/[a-zA-Z0-9/\\-&]*)"));
-        Q_ASSERT(urlRegExp.isValid());
+        QTC_CHECK(urlRegExp.isValid());
         if (urlRegExp.indexIn(description) != -1) {
             *url= urlRegExp.cap(1);
         } else {
diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp
index 71d662c2de59c5ac6cc75077d34d3f8929d7af26..53525649a942bf8fabc59a328fa4a2e3f3807c6d 100644
--- a/src/plugins/git/gitsubmiteditor.cpp
+++ b/src/plugins/git/gitsubmiteditor.cpp
@@ -35,6 +35,7 @@
 #include "gitconstants.h"
 #include "commitdata.h"
 
+#include <utils/qtcassert.h>
 #include <vcsbase/submitfilemodel.h>
 
 #include <QtCore/QDebug>
diff --git a/src/plugins/git/gitsubmiteditorwidget.cpp b/src/plugins/git/gitsubmiteditorwidget.cpp
index 2c09d7587778b3cfe14eb85a169205f0e1db6f02..e73281e952eeba1b4e697a7ab2b667fc6659ad0c 100644
--- a/src/plugins/git/gitsubmiteditorwidget.cpp
+++ b/src/plugins/git/gitsubmiteditorwidget.cpp
@@ -36,6 +36,7 @@
 #include <texteditor/texteditorsettings.h>
 #include <texteditor/fontsettings.h>
 #include <texteditor/texteditorconstants.h>
+#include <utils/qtcassert.h>
 
 #include <QtGui/QLineEdit>
 #include <QtGui/QRegExpValidator>
@@ -78,7 +79,7 @@ GitSubmitHighlighter::GitSubmitHighlighter(QTextEdit * parent) :
     m_keywordPattern(QLatin1String("^\\w+:")),
     m_hashChar(QLatin1Char('#'))
 {
-    Q_ASSERT(m_keywordPattern.isValid());
+    QTC_CHECK(m_keywordPattern.isValid());
 }
 
 void GitSubmitHighlighter::highlightBlock(const QString &text)
diff --git a/src/plugins/mercurial/mercurialcommitwidget.cpp b/src/plugins/mercurial/mercurialcommitwidget.cpp
index 73e8b7e92e5b57ed090ec23c0db2255e59d72d44..76601c9a4f9783254eef52221973d6074b72792c 100644
--- a/src/plugins/mercurial/mercurialcommitwidget.cpp
+++ b/src/plugins/mercurial/mercurialcommitwidget.cpp
@@ -35,6 +35,7 @@
 #include <texteditor/texteditorsettings.h>
 #include <texteditor/fontsettings.h>
 #include <texteditor/texteditorconstants.h>
+#include <utils/qtcassert.h>
 
 #include <QtGui/QSyntaxHighlighter>
 #include <QtGui/QTextEdit>
@@ -78,7 +79,7 @@ MercurialSubmitHighlighter::MercurialSubmitHighlighter(QTextEdit *parent) :
         m_keywordPattern(QLatin1String("^\\w+:")),
         m_hashChar(QLatin1Char('#'))
 {
-    Q_ASSERT(m_keywordPattern.isValid());
+    QTC_CHECK(m_keywordPattern.isValid());
 }
 
 void MercurialSubmitHighlighter::highlightBlock(const QString &text)
diff --git a/src/plugins/tasklist/stopmonitoringhandler.cpp b/src/plugins/tasklist/stopmonitoringhandler.cpp
index 859e0b1f86e1708eba65a7d8bd521e859ba400c0..3e1f44c17310a63c8edc7a86248e6ad0586040df 100644
--- a/src/plugins/tasklist/stopmonitoringhandler.cpp
+++ b/src/plugins/tasklist/stopmonitoringhandler.cpp
@@ -36,6 +36,7 @@
 #include "tasklistplugin.h"
 
 #include <projectexplorer/task.h>
+#include <utils/qtcassert.h>
 
 #include <QtGui/QAction>
 #include <QtCore/QCoreApplication>
@@ -61,7 +62,7 @@ bool StopMonitoringHandler::canHandle(const ProjectExplorer::Task &task)
 
 void StopMonitoringHandler::handle(const ProjectExplorer::Task &task)
 {
-    Q_ASSERT(canHandle(task));
+    QTC_ASSERT(canHandle(task), return);
     Q_UNUSED(task);
     TaskList::TaskListPlugin::instance()->stopMonitoring();
 }
diff --git a/src/plugins/vcsbase/vcsconfigurationpage.cpp b/src/plugins/vcsbase/vcsconfigurationpage.cpp
index f0e04682b201ea3fbc3ef052f3cb681677629a31..15c08209f4446ec11e43eb06bae5c9dc4d56ae75 100644
--- a/src/plugins/vcsbase/vcsconfigurationpage.cpp
+++ b/src/plugins/vcsbase/vcsconfigurationpage.cpp
@@ -40,6 +40,8 @@
 #include <coreplugin/icore.h>
 #include <coreplugin/iversioncontrol.h>
 
+#include <utils/qtcassert.h>
+
 namespace VcsBase {
 namespace Internal {
 
@@ -65,7 +67,7 @@ VcsConfigurationPage::VcsConfigurationPage(const Core::IVersionControl *vc, QWid
     QWizardPage(parent),
     d(new Internal::VcsConfigurationPagePrivate)
 {
-    Q_ASSERT(vc);
+    QTC_CHECK(vc);
     setTitle(tr("Configuration"));
     setSubTitle(tr("Please configure <b>%1</b> now.").arg(vc->displayName()));