diff --git a/pkgs/development/compilers/gcc/4.8/bug-58800.patch b/pkgs/development/compilers/gcc/4.8/bug-58800.patch
new file mode 100644
index 000000000000..c8e8666761a8
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.8/bug-58800.patch
@@ -0,0 +1,79 @@
+Index: gcc-4_8-branch/libstdc++-v3/include/bits/stl_algo.h
+===================================================================
+--- gcc-4_8-branch/libstdc++-v3/include/bits/stl_algo.h (revision 203872)
++++ gcc-4_8-branch/libstdc++-v3/include/bits/stl_algo.h (revision 203873)
+@@ -2279,7 +2279,7 @@
+ _RandomAccessIterator __last)
+ {
+ _RandomAccessIterator __mid = __first + (__last - __first) / 2;
+- std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2));
++ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1);
+ return std::__unguarded_partition(__first + 1, __last, *__first);
+ }
+
+@@ -2291,7 +2291,7 @@
+ _RandomAccessIterator __last, _Compare __comp)
+ {
+ _RandomAccessIterator __mid = __first + (__last - __first) / 2;
+- std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2),
++ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1,
+ __comp);
+ return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
+ }
+Index: gcc-4_8-branch/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
+===================================================================
+--- gcc-4_8-branch/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (revision 0)
++++ gcc-4_8-branch/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (revision 203873)
+@@ -0,0 +1,52 @@
++// Copyright (C) 2013 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3. If not see
++// .
++
++// 25.3.2 [lib.alg.nth.element]
++
++// { dg-options "-std=gnu++11" }
++
++#include
++#include
++#include
++
++using __gnu_test::test_container;
++using __gnu_test::random_access_iterator_wrapper;
++
++typedef test_container Container;
++
++void test01()
++{
++ std::vector v = {
++ 207089,
++ 202585,
++ 180067,
++ 157549,
++ 211592,
++ 216096,
++ 207089
++ };
++
++ Container con(v.data(), v.data() + 7);
++
++ std::nth_element(con.begin(), con.begin() + 3, con.end());
++}
++
++int main()
++{
++ test01();
++ return 0;
++}
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index aea525933234..890122fe4770 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -62,7 +62,7 @@ let version = "4.8.2";
*/
enableParallelBuilding = !profiledCompiler;
- patches = []
+ patches = [ ./bug-58800.patch ] # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58800
++ optional enableParallelBuilding ./parallel-bconfig.patch
++ optional (cross != null) ./libstdc++-target.patch
# ++ optional noSysDirs ./no-sys-dirs.patch