diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index c02866cb5623d5717849f23783e185ceafe3e7d6..898f379ad6403de38ba085d7eafea56d70db11d5 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -287,8 +287,8 @@ bool cmListFileParser::ParseFunction(const char* name, long line)
     if(token->type == cmListFileLexer_Token_ParenLeft)
       {
       parenDepth++;
-      this->AddArgument(token, cmListFileArgument::Unquoted);
       this->Separation = SeparationOkay;
+      this->AddArgument(token, cmListFileArgument::Unquoted);
       }
     else if(token->type == cmListFileLexer_Token_ParenRight)
       {
diff --git a/Tests/RunCMake/Syntax/ParenNoSpace-stderr.txt b/Tests/RunCMake/Syntax/ParenNoSpace-stderr.txt
new file mode 100644
index 0000000000000000000000000000000000000000..10f32932ee8c02373314b10fd478bc8a99daf35e
--- /dev/null
+++ b/Tests/RunCMake/Syntax/ParenNoSpace-stderr.txt
@@ -0,0 +1 @@
+^$
diff --git a/Tests/RunCMake/Syntax/ParenNoSpace-stdout.txt b/Tests/RunCMake/Syntax/ParenNoSpace-stdout.txt
new file mode 100644
index 0000000000000000000000000000000000000000..72addd7947bb97a49710f87b8c4e80950deaef65
--- /dev/null
+++ b/Tests/RunCMake/Syntax/ParenNoSpace-stdout.txt
@@ -0,0 +1,2 @@
+-- unquoted\(unquoted\)
+-- quoted\(quoted\)
diff --git a/Tests/RunCMake/Syntax/ParenNoSpace.cmake b/Tests/RunCMake/Syntax/ParenNoSpace.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..c690d964e61ab84d8c157f50cdad8de7446a0f86
--- /dev/null
+++ b/Tests/RunCMake/Syntax/ParenNoSpace.cmake
@@ -0,0 +1,2 @@
+message(STATUS unquoted(unquoted))
+message(STATUS "quoted"("quoted"))
diff --git a/Tests/RunCMake/Syntax/RunCMakeTest.cmake b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
index 8975b256dbfce2153825a60544a7d9154a20f70c..94963f3480e9c4b2ac746bcd75425256f652e833 100644
--- a/Tests/RunCMake/Syntax/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
@@ -11,6 +11,7 @@ run_cmake(String1)
 run_cmake(StringNoSpace)
 run_cmake(Unquoted0)
 run_cmake(Unquoted1)
+run_cmake(ParenNoSpace)
 run_cmake(UnterminatedCall1)
 run_cmake(UnterminatedCall2)
 run_cmake(UnterminatedString)