diff --git a/CMakeLists.txt b/CMakeLists.txt
index f825f1284bcef436eafb502eed2c8166d1afecae..5b4ecb68d775309d08a7a487ebc50e396448edaa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -146,7 +146,7 @@ get_property(__allFiles GLOBAL PROPERTY ROOT_DICTIONARY_FILES)
 get_property(__clingetcpch GLOBAL PROPERTY CLINGETCPCH)
 
 
-string (REPLACE " " ";" CMAKE_CXX_FLAGS_SEPARATE ${CMAKE_CXX_FLAGS})
+string(REGEX REPLACE "[ ]-" ";-" CMAKE_CXX_FLAGS_SEPARATE ${CMAKE_CXX_FLAGS})
 add_custom_command(OUTPUT etc/dictpch/allLinkDefs.h
                           etc/dictpch/allHeaders.h
                           etc/dictpch/allCppflags.txt
diff --git a/build/unix/makepchinput.py b/build/unix/makepchinput.py
index d7303caa86894fd496e0881d29ec76000aca5920..93d528ab44ad1297963cdba7e822c84620058851 100755
--- a/build/unix/makepchinput.py
+++ b/build/unix/makepchinput.py
@@ -46,7 +46,7 @@ def getParams():
    clingetpchList = argv[3:posDelim]
    cxxflags = argv[posDelim + 1:]
    print (', '.join(cxxflags))
-   cxxflagsNoW = [flag for flag in cxxflags if (flag[0:2] != '-W' and flag[0:3] != '-wd') or flag[0:4] == '-Wno']
+   cxxflagsNoW = [flag for flag in cxxflags if (flag[0:2] != '-W' and flag[0:3] != '-wd' and flag[0:5] != '-arch') or flag[0:4] == '-Wno']
    print (', '.join(cxxflagsNoW))
 
    return rootSrcDir, modules, clingetpchList, cxxflagsNoW