diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d42f58dac6671f36c9c4ef09ffd42452c6fbf3fd..9c4a185afb3e09744979678247752a5788a1f463 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
+
+	PR driver/41594
+	* gcc.c: Add -static-libstdc++ to list of recognized options.
+
 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	* config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 31e4ab37513ebd1508b2889383c00287a6b20465..9ca245170c2acd2974588df6a9c67465e686f210 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4558,12 +4558,14 @@ process_command (int argc, const char **argv)
 	  switches[n_switches].validated = 0;
 	  switches[n_switches].ordering = 0;
 	  /* These are always valid, since gcc.c itself understands the
-	     first four and gfortranspec.c understands -static-libgfortran.  */
+	     first four, gfortranspec.c understands -static-libgfortran
+	     and g++spec.c understands -static-libstdc++ */
 	  if (!strcmp (p, "save-temps")
 	      || !strcmp (p, "static-libgcc")
 	      || !strcmp (p, "shared-libgcc")
 	      || !strcmp (p, "pipe")
-	      || !strcmp (p, "static-libgfortran"))
+	      || !strcmp (p, "static-libgfortran")
+	      || !strcmp (p, "static-libstdc++"))
 	    switches[n_switches].validated = 1;
 	  else
 	    {