Index: cmSetCommand.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSetCommand.cxx,v
retrieving revision 1.35
diff -b -u -p -r1.35 cmSetCommand.cxx
--- cmSetCommand.cxx	10 May 2009 20:07:34 -0000	1.35
+++ cmSetCommand.cxx	10 May 2009 20:55:15 -0000
@@ -160,6 +160,7 @@ bool cmSetCommand
     // or the makefile
     if(cache && type != cmCacheManager::INTERNAL && !force)
       {
+      this->Makefile->RemoveDefinition(variable);
       return true;
       }
     }
Index: cmOptionCommand.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmOptionCommand.cxx,v
retrieving revision 1.23
diff -b -u -p -r1.23 cmOptionCommand.cxx
--- cmOptionCommand.cxx	23 Jan 2008 15:27:59 -0000	1.23
+++ cmOptionCommand.cxx	10 May 2009 20:55:15 -0000
@@ -58,6 +58,7 @@ bool cmOptionCommand
     if ( it.GetType() != cmCacheManager::UNINITIALIZED )
       {
       it.SetProperty("HELPSTRING", args[1].c_str());
+      this->Makefile->RemoveDefinition(args[0].c_str());
       return true;
       }
     if ( it.GetValue() )
