diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc
index a67ba17eb00b5660cd47f289aebd401b442fbe34..d4410fa6854afeee07f4bf6c9ae066b6015852a0 100755
--- a/Library/ENV/4.3/cc
+++ b/Library/ENV/4.3/cc
@@ -91,10 +91,14 @@ class Cmd
       args << "-syslibroot" << $sdkroot
     end if nclt?
     allflags = case mode
-    when :ccld, :cxxld
+    when :ccld
       cflags + args + cppflags + ldflags
-    when :cc, :cxx
+    when :cxxld
+      cxxflags + args + cppflags + ldflags
+    when :cc
       cflags + args + cppflags
+    when :cxx
+      cxxflags + args + cppflags
     when :ccE
       args + cppflags
     when :cpp
@@ -158,11 +162,6 @@ class Cmd
   end
   def cflags
     args = []
-    if mode == :cxx
-      args << '-std=c++11' if cccfg? 'x'
-      args << '-stdlib=libc++' if cccfg? 'g'
-      args << '-stdlib=libstdc++' if cccfg? 'h'
-    end
 
     return args unless cccfg? 'O'
 
@@ -188,6 +187,13 @@ class Cmd
     args << "-std=#{@arg0}" if @arg0 =~ /c[89]9/
     args
   end
+  def cxxflags
+    args = cflags
+    args << '-std=c++11' if cccfg? 'x'
+    args << '-stdlib=libc++' if cccfg? 'g'
+    args << '-stdlib=libstdc++' if cccfg? 'h'
+    args
+  end
   def syslibpath
     # We reject brew's lib as we explicitly add this as a -L flag, thus it
     # is given higher priority by cc, so it surpasses the system libpath.