diff --git a/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp b/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp
index be0804b7cff69d3034d1f49ab49c1c3606e1cf2f..c94a2bca0cf3c76d9c76058a4bc398ada77ac587 100644
--- a/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp
+++ b/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp
@@ -37,6 +37,8 @@
 #include <coreplugin/icore.h>
 #include <utils/qtcassert.h>
 
+#include <QFileInfo>
+
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
 
@@ -72,10 +74,15 @@ void GdbMacrosBuildStep::run(QFutureInterface<bool> & fi)
         QDir dir;
         dir.mkpath(destDir);
         foreach (const QString &file, files) {
-            QFile destination(destDir + file);
-            if (destination.exists())
-                destination.remove();
-            QFile::copy(dumperPath + file, destDir + file);
+            QString source = dumperPath + file;
+            QString dest = destDir + file;
+            QFileInfo destInfo(dest);
+            if (destInfo.exists()) {
+                if (destInfo.lastModified() >= QFileInfo(source).lastModified())
+                    continue;
+                QFile::remove(dest);
+            }
+            QFile::copy(source, dest);
         }
 
         Qt4Project *qt4Project = static_cast<Qt4Project *>(project());