diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc
index 749e8299..41ed48bb 100644
--- a/googletest/src/gtest.cc
+++ b/googletest/src/gtest.cc
@@ -146,6 +146,12 @@
 # define vsnprintf _vsnprintf
 #endif  // GTEST_OS_WINDOWS
 
+#if GTEST_OS_MAC
+# ifndef GTEST_OS_IOS
+#  include <crt_externs.h>
+# endif
+#endif
+
 namespace testing {
 
 using internal::CountIf;
@@ -5341,6 +5347,16 @@ void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
     }
   }
 
+// Fix the value of *_NSGetArgc() on macOS, but iff 
+// *_NSGetArgv() == argv
+#if GTEST_OS_MAC
+# ifndef GTEST_OS_IOS
+  if (*_NSGetArgv() == argv) {
+    *_NSGetArgc() = *argc;
+  }
+# endif
+#endif
+
   if (g_help_flag) {
     // We print the help here instead of in RUN_ALL_TESTS(), as the
     // latter may not be called at all if the user is using Google