diff --git a/share/qtcreator/gdbmacros/gdbmacros.cpp b/share/qtcreator/gdbmacros/gdbmacros.cpp
index 9234f1fe1e41e1db60e7e9089ad8e2035e62b49c..1f3b2e4758af13baf604dc8a6f14dd0790462a8d 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.cpp
+++ b/share/qtcreator/gdbmacros/gdbmacros.cpp
@@ -3651,6 +3651,7 @@ void *watchPoint(int x, int y)
 #ifdef Q_CC_MSVC
 // Offsets of a map node value which looks like
 // "(size_t)&(((QMapNode<int,int> *)0)->value)-0"
+#if QT_VERSION >= 0x040500
 template <class Key, class Value>
         inline QDumper & putQMapNodeOffsetExpression(const char *keyType,
                                                      const char *valueType,
@@ -3669,6 +3670,7 @@ template <class Key, class Value>
     d.put("\"]");
     return d;
 }
+#endif
 
 // Helper to write out common expression values for CDB:
 // Offsets of a std::pair for dumping std::map node value which look like
@@ -3734,12 +3736,14 @@ static inline void dumpSizes(QDumper &d)
 #endif // QT_BOOTSTRAPPED
     sizeMap.insert(sizeof(QPointer<QObject>), "QPointer");
     // Common map node types
+#if QT_VERSION >= 0x040500
     sizeMap.insert(sizeof(QMapNode<int,int >), NS"QMapNode<int,int>");
     sizeMap.insert(sizeof(QMapNode<int, QString>), NS"QMapNode<int,"NS"QString>");
     sizeMap.insert(sizeof(QMapNode<int, QVariant>), NS"QMapNode<int,"NS"QVariant>");
     sizeMap.insert(sizeof(QMapNode<QString, int>), NS"QMapNode<"NS"QString,int>");
     sizeMap.insert(sizeof(QMapNode<QString, QString>), NS"QMapNode<"NS"QString,"NS"QString>");
     sizeMap.insert(sizeof(QMapNode<QString, QVariant>), NS"QMapNode<"NS"QString,"NS"QVariant>");
+#endif
     // Dump as lists of types preceded by size
     size_t lastSize = 0;
     d.put("sizes=[");
@@ -3859,12 +3863,14 @@ void *qDumpObjectData440(
         // Write out common expression values for CDB
 #ifdef Q_CC_MSVC
         d.put(",expressions=[");
+#if QT_VERSION >= 0x040500
         putQMapNodeOffsetExpression<int,int>("int", "int", d).put(',');
         putQMapNodeOffsetExpression<int,QString>("int", NS"QString", d).put(',');
         putQMapNodeOffsetExpression<int,QVariant>("int", NS"QVariant", d).put(',');
         putQMapNodeOffsetExpression<QString,int>(NS"QString", "int", d).put(',');
         putQMapNodeOffsetExpression<QString,QString>(NS"QString", NS"QString", d).put(',');
         putQMapNodeOffsetExpression<QString,QVariant>(NS"QString", NS"QVariant", d).put(',');
+#endif
         // Std Pairs
         putStdPairValueOffsetExpression<int,int>("int","int", d).put(',');
         putStdPairValueOffsetExpression<QString,QString>(NS"QString",NS"QString", d).put(',');