diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index 695a9f6bf5fa7220980056d9017b4a5b1b98e91c..3ae95007ef6822d98236655300a41cf8d26153a3 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -492,24 +492,6 @@ QByteArray Preprocessor::operator()(const QByteArray &filename,
     return preprocessed;
 }
 
-QByteArray Preprocessor::operator()(const QByteArray &source)
-{
-    QByteArray preprocessed;
-    preprocess(source, &preprocessed);
-    return preprocessed;
-}
-
-void Preprocessor::preprocess(const QByteArray &filename,
-                              const QByteArray &source,
-                              QByteArray *result)
-{
-    const QByteArray previousFile = env.currentFile;
-
-    env.currentFile = filename;
-    preprocess(source, result);
-    env.currentFile = previousFile;
-}
-
 void Preprocessor::expand(const QByteArray &source, QByteArray *result)
 {
     _expand(source, result);
@@ -536,13 +518,17 @@ Preprocessor::State Preprocessor::createStateFromSource(const QByteArray &source
     return state;
 }
 
-void Preprocessor::preprocess(const QByteArray &source, QByteArray *result)
+void Preprocessor::preprocess(const QByteArray &fileName, const QByteArray &source,
+                              QByteArray *result)
 {
     QByteArray *previousResult = _result;
     _result = result;
 
     pushState(createStateFromSource(source));
 
+    const QByteArray previousFileName = env.currentFile;
+    env.currentFile = fileName;
+
     const unsigned previousCurrentLine = env.currentLine;
     env.currentLine = 0;
 
@@ -716,6 +702,8 @@ void Preprocessor::preprocess(const QByteArray &source, QByteArray *result)
     }
 
     popState();
+
+    env.currentFile = previousFileName;
     env.currentLine = previousCurrentLine;
     _result = previousResult;
 }
diff --git a/src/libs/cplusplus/pp-engine.h b/src/libs/cplusplus/pp-engine.h
index b07e58187b71432bef5a293ce58f994a871ca558..21e3638954e234f36fb7440f32a6c9d2c47f2f93 100644
--- a/src/libs/cplusplus/pp-engine.h
+++ b/src/libs/cplusplus/pp-engine.h
@@ -138,8 +138,6 @@ public:
     QByteArray operator()(const QByteArray &filename,
                           const QByteArray &source);
 
-    QByteArray operator()(const QByteArray &source);
-
 private:
     enum { MAX_LEVEL = 512 };
 
@@ -171,9 +169,6 @@ private:
                     const QByteArray &source,
                     QByteArray *result);
 
-    void preprocess(const QByteArray &source,
-                    QByteArray *result);
-
     void expand(const QByteArray &source, QByteArray *result);
     void expand(const char *first, const char *last, QByteArray *result);