diff --git a/Source/cmCPluginAPI.cxx b/Source/cmCPluginAPI.cxx
index 0d24ed5ed6173eb420288e8eff0c730ede1ce9a2..591a2cd81ed6b37c68881b8add272faef68a7abc 100644
--- a/Source/cmCPluginAPI.cxx
+++ b/Source/cmCPluginAPI.cxx
@@ -426,8 +426,7 @@ int CCONV cmExecuteCommand(void *arg, const char *name,
     {
     // Assume all arguments are quoted.
     lff.Arguments.push_back(
-      cmListFileArgument(args[i], cmListFileArgument::Quoted,
-                         "[CMake-Plugin]", 0));
+      cmListFileArgument(args[i], cmListFileArgument::Quoted, 0));
     }
   cmExecutionStatus status;
   return mf->ExecuteCommand(lff,status);
diff --git a/Source/cmFunctionCommand.cxx b/Source/cmFunctionCommand.cxx
index 662f77d32837754f8a601e41e331aaffb89f2503..b3576c35db04d9ad26b79667292d82f121ea9e8e 100644
--- a/Source/cmFunctionCommand.cxx
+++ b/Source/cmFunctionCommand.cxx
@@ -176,17 +176,6 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf,
       f->FilePath = this->GetStartingContext().FilePath;
       mf.RecordPolicies(f->Policies);
 
-      // Set the FilePath on the arguments to match the function since it is
-      // not stored and the original values may be freed
-      for (unsigned int i = 0; i < f->Functions.size(); ++i)
-        {
-        for (unsigned int j = 0; j < f->Functions[i].Arguments.size(); ++j)
-          {
-          f->Functions[i].Arguments[j].FilePath =
-            f->Functions[i].FilePath.c_str();
-          }
-        }
-
       std::string newName = "_" + this->Args[0];
       mf.GetState()->RenameCommand(this->Args[0], newName);
       mf.GetState()->AddCommand(f);
diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index ca583145ab8950cf008e188e2beb4fd8d66c4863..006ca4c1ff19e51cf52b77a8f55053c76af36b5c 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -234,8 +234,7 @@ bool cmListFile::ParseFile(const char* filename,
       {
       cmListFileFunction project;
       project.Name = "PROJECT";
-      cmListFileArgument prj("Project", cmListFileArgument::Unquoted,
-                             filename, 0);
+      cmListFileArgument prj("Project", cmListFileArgument::Unquoted, 0);
       project.Arguments.push_back(prj);
       this->Functions.insert(this->Functions.begin(),project);
       }
@@ -375,7 +374,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
 bool cmListFileParser::AddArgument(cmListFileLexer_Token* token,
                                    cmListFileArgument::Delimiter delim)
 {
-  cmListFileArgument a(token->text, delim, this->FileName, token->line);
+  cmListFileArgument a(token->text, delim, token->line);
   this->Function.Arguments.push_back(a);
   if(this->Separation == SeparationOkay)
     {
diff --git a/Source/cmListFileCache.h b/Source/cmListFileCache.h
index 4002d94b00b8e4fb59b171e4c604d7a82f62e528..f5859ec63aecb6d54540fcc4afc5dada04972a80 100644
--- a/Source/cmListFileCache.h
+++ b/Source/cmListFileCache.h
@@ -33,12 +33,11 @@ struct cmListFileArgument
     Quoted,
     Bracket
     };
-  cmListFileArgument(): Value(), Delim(Unquoted), FilePath(0), Line(0) {}
-  cmListFileArgument(const cmListFileArgument& r):
-    Value(r.Value), Delim(r.Delim), FilePath(r.FilePath), Line(r.Line) {}
-  cmListFileArgument(const std::string& v, Delimiter d, const char* file,
-                     long line): Value(v), Delim(d),
-                                 FilePath(file), Line(line) {}
+  cmListFileArgument(): Value(), Delim(Unquoted), Line(0) {}
+  cmListFileArgument(const cmListFileArgument& r)
+    : Value(r.Value), Delim(r.Delim), Line(r.Line) {}
+  cmListFileArgument(const std::string& v, Delimiter d, long line)
+    : Value(v), Delim(d), Line(line) {}
   bool operator == (const cmListFileArgument& r) const
     {
     return (this->Value == r.Value) && (this->Delim == r.Delim);
@@ -49,7 +48,6 @@ struct cmListFileArgument
     }
   std::string Value;
   Delimiter Delim;
-  const char* FilePath;
   long Line;
 };
 
diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx
index c3e67d747c85ccb777607b31eb0362cf7912fd43..0b945b217badcec86213cd276384baf4827ff3de 100644
--- a/Source/cmMacroCommand.cxx
+++ b/Source/cmMacroCommand.cxx
@@ -139,10 +139,6 @@ bool cmMacroHelperCommand::InvokeInitialPass
            this->Functions[c].Arguments.begin();
          k != this->Functions[c].Arguments.end(); ++k)
       {
-      // Set the FilePath on the arguments to match the function since it is
-      // not stored and the original values may be freed
-      k->FilePath = this->FilePath.c_str();
-
       cmListFileArgument arg;
       arg.Value = k->Value;
       if(k->Delim != cmListFileArgument::Bracket)
@@ -173,7 +169,6 @@ bool cmMacroHelperCommand::InvokeInitialPass
           }
         }
       arg.Delim = k->Delim;
-      arg.FilePath = k->FilePath;
       arg.Line = k->Line;
       newLFF.Arguments.push_back(arg);
       }
diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx
index 09cef5e5dec268bc6123f596eab4b4b0e7d42b79..6521c04c2ff3cc1a321372198c1e67a1f7a08ca9 100644
--- a/Source/cmVariableWatchCommand.cxx
+++ b/Source/cmVariableWatchCommand.cxx
@@ -49,21 +49,21 @@ static void cmVariableWatchCommandVariableAccessed(
     newLFF.Arguments.clear();
     newLFF.Arguments.push_back(
       cmListFileArgument(variable, cmListFileArgument::Quoted,
-                         "unknown", 9999));
+                         9999));
     newLFF.Arguments.push_back(
       cmListFileArgument(accessString, cmListFileArgument::Quoted,
-                         "unknown", 9999));
+                         9999));
     newLFF.Arguments.push_back(
       cmListFileArgument(newValue?newValue:"", cmListFileArgument::Quoted,
-                         "unknown", 9999));
+                         9999));
     newLFF.Arguments.push_back(
       cmListFileArgument(currentListFile, cmListFileArgument::Quoted,
-                         "unknown", 9999));
+                         9999));
     newLFF.Arguments.push_back(
       cmListFileArgument(stack, cmListFileArgument::Quoted,
-                         "unknown", 9999));
+                         9999));
     newLFF.Name = data->Command;
-    newLFF.FilePath = "Some weird path";
+    newLFF.FilePath = "unknown";
     newLFF.Line = 9999;
     cmExecutionStatus status;
     if(!makefile->ExecuteCommand(newLFF,status))