diff --git a/src/plugins/qt4projectmanager/profilereader.cpp b/src/plugins/qt4projectmanager/profilereader.cpp
index ecd53ee51c88946fff9beb499448f2c2ce635023..66fbc2f8b978da3fd9d01f4faa8beb525ebb2c1b 100644
--- a/src/plugins/qt4projectmanager/profilereader.cpp
+++ b/src/plugins/qt4projectmanager/profilereader.cpp
@@ -89,7 +89,7 @@ QList<ProFile*> ProFileReader::includeFiles() const
 
 QString ProFileReader::value(const QString &variable) const
 {
-    QStringList vals = values(variable);
+    const QStringList &vals = values(variable);
     if (!vals.isEmpty())
         return vals.first();
 
diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h
index 9b7f7f0c2a2b0d387f689d50d45d9cc62e35ad05..ae907d663370a3d2f62bf106aa3315dc0ae97312 100644
--- a/src/plugins/qt4projectmanager/qt4target.h
+++ b/src/plugins/qt4projectmanager/qt4target.h
@@ -40,7 +40,6 @@ namespace Qt4ProjectManager {
 class Qt4Project;
 
 namespace Internal {
-class ProFileReader;
 class Qt4ProFileNode;
 class Qt4TargetFactory;
 class Qt4BuildConfigurationFactory;
diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index f0969b9abeaeb5d92417bd439c570983097abfaf..b18d06794a45748e40e513b08da02c105f78a54e 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -3574,7 +3574,8 @@ ProFileEvaluator::Private::VisitReturn ProFileEvaluator::Private::evaluateCondit
                 logMessage(format("include(file, into, silent) requires one, two or three arguments."));
                 return ReturnFalse;
             }
-            QString fn = resolvePath(expandEnvVars(args.at(0).toQString()));
+            QString fn = resolvePath(expandEnvVars(args.at(0).toQString(m_tmp1)));
+            fn.detach();
             bool ok;
             if (parseInto.isEmpty()) {
                 ok = evaluateFile(fn);
@@ -4147,7 +4148,7 @@ QStringList ProFileEvaluator::absoluteFileValues(
     return result;
 }
 
-ProFileEvaluator::TemplateType ProFileEvaluator::templateType()
+ProFileEvaluator::TemplateType ProFileEvaluator::templateType() const
 {
     const ProStringList &templ = d->values(statics.strTEMPLATE);
     if (templ.count() >= 1) {
diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h
index d956cc1d4111906e57f84e26cbfb939fd2a82f7b..2fe48fc562f257d3c11012c8d01c54faa617d5bc 100644
--- a/src/shared/proparser/profileevaluator.h
+++ b/src/shared/proparser/profileevaluator.h
@@ -74,7 +74,7 @@ public:
     ProFileEvaluator(ProFileOption *option);
     virtual ~ProFileEvaluator();
 
-    ProFileEvaluator::TemplateType templateType();
+    ProFileEvaluator::TemplateType templateType() const;
     void setVerbose(bool on); // Default is false
     void setCumulative(bool on); // Default is true!
     void setOutputDir(const QString &dir); // Default is empty
diff --git a/src/shared/proparser/proitems.cpp b/src/shared/proparser/proitems.cpp
index c4005aeacaab80f51e42c4c71603cbd9958fbb3d..c39473152cf89b0f05185f71034619572aa9d99e 100644
--- a/src/shared/proparser/proitems.cpp
+++ b/src/shared/proparser/proitems.cpp
@@ -335,9 +335,8 @@ ProFile::ProFile(const QString &fileName)
       m_fileName(fileName)
 {
     int nameOff = fileName.lastIndexOf(QLatin1Char('/'));
-    m_displayFileName = QString(fileName.constData() + nameOff + 1,
-                                fileName.length() - nameOff - 1);
-    m_directoryName = QString(fileName.constData(), nameOff);
+    m_displayFileName = fileName.mid(nameOff + 1);
+    m_directoryName = fileName.left(nameOff);
 }
 
 ProFile::~ProFile()