MacPorts g++ also defined __APPLE_CC__, but to 1.
diff --git a/asio/include/asio/detail/pop_options.hpp b/asio/include/asio/detail/pop_options.hpp
index 499496b..97496ca 100644
--- a/asio/include/asio/detail/pop_options.hpp
+++ b/asio/include/asio/detail/pop_options.hpp
@@ -31,11 +31,13 @@
 #  pragma pack (pop)
 # endif
 
-# if defined(__OBJC__) && !defined(__APPLE_CC__)
-#  if defined(ASIO_OBJC_WORKAROUND)
-#   undef Protocol
-#   undef id
-#   undef ASIO_OBJC_WORKAROUND
+# if defined(__OBJC__)
+#  if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
+#   if defined(ASIO_OBJC_WORKAROUND)
+#    undef Protocol
+#    undef id
+#    undef ASIO_OBJC_WORKAROUND
+#   endif
 #  endif
 # endif
 
diff --git a/asio/include/asio/detail/push_options.hpp b/asio/include/asio/detail/push_options.hpp
index 6dcd04c..8615049 100644
--- a/asio/include/asio/detail/push_options.hpp
+++ b/asio/include/asio/detail/push_options.hpp
@@ -31,12 +31,14 @@
 #  pragma pack (push, 8)
 # endif
 
-# if defined(__OBJC__) && !defined(__APPLE_CC__)
-#  if !defined(ASIO_DISABLE_OBJC_WORKAROUND)
-#   if !defined(Protocol) && !defined(id)
-#    define Protocol cpp_Protocol
-#    define id cpp_id
-#    define ASIO_OBJC_WORKAROUND
+# if defined(__OBJC__)
+#  if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
+#   if !defined(ASIO_DISABLE_OBJC_WORKAROUND)
+#    if !defined(Protocol) && !defined(id)
+#     define Protocol cpp_Protocol
+#     define id cpp_id
+#     define ASIO_OBJC_WORKAROUND
+#    endif
 #   endif
 #  endif
 # endif