diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java
index 8d0384b7489..e7ff7f3d52f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/PreprocessorMacro.java
@@ -10,9 +10,10 @@
  *******************************************************************************/ 
 package org.eclipse.cdt.internal.core.parser.scanner;
 
-import com.ibm.icu.text.DateFormatSymbols;
 import java.util.Calendar;
 
+import com.ibm.icu.text.DateFormatSymbols;
+
 import org.eclipse.cdt.core.dom.ILinkage;
 import org.eclipse.cdt.core.dom.ast.IBinding;
 import org.eclipse.cdt.core.dom.ast.IMacroBinding;
@@ -360,7 +361,7 @@ final class FileMacro extends DynamicMacro {
 	@Override
 	public Token execute(MacroExpander expander) {
         StringBuffer buffer = new StringBuffer("\""); //$NON-NLS-1$
-        buffer.append(expander.getCurrentFilename());
+        buffer.append(expander.getCurrentFilename().replace("\\", "\\\\"));  //$NON-NLS-1$//$NON-NLS-2$
         buffer.append('\"');
         return new TokenWithImage(IToken.tSTRING, null, 0, 0, buffer.toString().toCharArray());
     }