diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index b027953c1f43c65127f3da79917f33d804e56d3e..f5ea89896f90d9aa94b4e24deb19641f936317d6 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -11,8 +11,8 @@ choice
 		bool "gcc 4.4.6"
 		depends (avr32 || ubicom32)
 
-	config GCC_VERSION_4_6_1
-		bool "gcc 4.6.1"
+	config GCC_VERSION_4_6_2
+		bool "gcc 4.6.2"
 
 	config GCC_VERSION_4_5_LINARO
 		bool "gcc 4.5.x with Linaro enhancements"
diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version
index 288ffa44956f39ea01ca7de30c8afc23bb30134a..e565bc571c04d95145a600c8c13d1eccebfb30a8 100644
--- a/toolchain/gcc/Config.version
+++ b/toolchain/gcc/Config.version
@@ -14,7 +14,7 @@ config GCC_DEFAULT_VERSION_4_6_LINARO
 config GCC_VERSION
 	string
 	default "4.4.6"	    if GCC_VERSION_4_4_6
-	default "4.6.1"	    if GCC_VERSION_4_6_1
+	default "4.6.2"	    if GCC_VERSION_4_6_2
 	default "4.5-linaro"    if GCC_VERSION_4_5_LINARO
 	default "4.6-linaro"    if GCC_VERSION_4_6_LINARO
 	default "llvm"	    if GCC_VERSION_LLVM
@@ -30,7 +30,7 @@ config GCC_VERSION_4_5
 
 config GCC_VERSION_4_6
 	bool
-	default y       if (GCC_VERSION_4_6_1 || GCC_VERSION_4_6_LINARO)
+	default y       if (GCC_VERSION_4_6_2 || GCC_VERSION_4_6_LINARO)
 
 if !TOOLCHAINOPTS
 
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index ac33c3b867c47e679e7aff9544be0e73e3dd1b6c..73d63ba9a28f1a7b908b7bd4d193b7e5521a4bc9 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -60,8 +60,8 @@ else
   ifeq ($(PKG_VERSION),4.4.6)
     PKG_MD5SUM:=ab525d429ee4425050a554bc9247d6c4
   endif
-  ifeq ($(PKG_VERSION),4.6.1)
-    PKG_MD5SUM:=c57a9170c677bf795bdc04ed796ca491
+  ifeq ($(PKG_VERSION),4.6.2)
+    PKG_MD5SUM:=028115c4fbfb6cfd75d6369f4a90d87e
   endif
 endif
 endif
diff --git a/toolchain/gcc/patches/4.6.1/100-uclibc-conf.patch b/toolchain/gcc/patches/4.6.2/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/100-uclibc-conf.patch
rename to toolchain/gcc/patches/4.6.2/100-uclibc-conf.patch
diff --git a/toolchain/gcc/patches/4.6.1/301-missing-execinfo_h.patch b/toolchain/gcc/patches/4.6.2/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/301-missing-execinfo_h.patch
rename to toolchain/gcc/patches/4.6.2/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/patches/4.6.1/302-c99-snprintf.patch b/toolchain/gcc/patches/4.6.2/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/302-c99-snprintf.patch
rename to toolchain/gcc/patches/4.6.2/302-c99-snprintf.patch
diff --git a/toolchain/gcc/patches/4.6.1/305-libmudflap-susv3-legacy.patch b/toolchain/gcc/patches/4.6.2/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/305-libmudflap-susv3-legacy.patch
rename to toolchain/gcc/patches/4.6.2/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/patches/4.6.1/600-ubicom_support.patch b/toolchain/gcc/patches/4.6.2/600-ubicom_support.patch
similarity index 99%
rename from toolchain/gcc/patches/4.6.1/600-ubicom_support.patch
rename to toolchain/gcc/patches/4.6.2/600-ubicom_support.patch
index 8268b5e922f234adc209a95032f82c165979d68e..6b6816157b0bdabfd214dc08a6024d1519112a81 100644
--- a/toolchain/gcc/patches/4.6.1/600-ubicom_support.patch
+++ b/toolchain/gcc/patches/4.6.2/600-ubicom_support.patch
@@ -1,8 +1,8 @@
 --- a/configure
 +++ b/configure
-@@ -3608,6 +3608,9 @@ case "${target}" in
+@@ -3602,6 +3602,9 @@ case "${target}" in
    ip2k-*-*)
-     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
+     noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
      ;;
 +  ubicom32-*-*)
 +    noconfigdirs="$noconfigdirs target-libffi"
@@ -9313,7 +9313,7 @@
 +#define FATAL_EXIT_CODE 33
 --- a/gcc/config.gcc
 +++ b/gcc/config.gcc
-@@ -2662,6 +2662,34 @@ spu-*-elf*)
+@@ -2675,6 +2675,34 @@ spu-*-elf*)
  	c_target_objs="${c_target_objs} spu-c.o"
  	cxx_target_objs="${cxx_target_objs} spu-c.o"
  	;;
diff --git a/toolchain/gcc/patches/4.6.1/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/4.6.2/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/810-arm-softfloat-libgcc.patch
rename to toolchain/gcc/patches/4.6.2/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/patches/4.6.1/820-libgcc_pic.patch b/toolchain/gcc/patches/4.6.2/820-libgcc_pic.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/820-libgcc_pic.patch
rename to toolchain/gcc/patches/4.6.2/820-libgcc_pic.patch
diff --git a/toolchain/gcc/patches/4.6.1/830-arm_unbreak_armv4t.patch b/toolchain/gcc/patches/4.6.2/830-arm_unbreak_armv4t.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/830-arm_unbreak_armv4t.patch
rename to toolchain/gcc/patches/4.6.2/830-arm_unbreak_armv4t.patch
diff --git a/toolchain/gcc/patches/4.6.1/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/4.6.2/840-armv4_pass_fix-v4bx_to_ld.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/840-armv4_pass_fix-v4bx_to_ld.patch
rename to toolchain/gcc/patches/4.6.2/840-armv4_pass_fix-v4bx_to_ld.patch
diff --git a/toolchain/gcc/patches/4.6.1/910-mbsd_multi.patch b/toolchain/gcc/patches/4.6.2/910-mbsd_multi.patch
similarity index 98%
rename from toolchain/gcc/patches/4.6.1/910-mbsd_multi.patch
rename to toolchain/gcc/patches/4.6.2/910-mbsd_multi.patch
index 5a1adc971edf617ec8c2e686e2111f8f751f97d5..3623d387226133e8dc7b7e4532aecc205c644c2d 100644
--- a/toolchain/gcc/patches/4.6.1/910-mbsd_multi.patch
+++ b/toolchain/gcc/patches/4.6.2/910-mbsd_multi.patch
@@ -209,7 +209,7 @@
  -Wfatal-errors  -Wfloat-equal  -Wformat  -Wformat=2 @gol
  -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol
  -Wformat-security  -Wformat-y2k @gol
-@@ -4495,6 +4495,22 @@ This option is only supported for C and
+@@ -4497,6 +4497,22 @@ This option is only supported for C and
  @option{-Wall} and by @option{-pedantic}, which can be disabled with
  @option{-Wno-pointer-sign}.
  
@@ -232,7 +232,7 @@
  @item -Wstack-protector
  @opindex Wstack-protector
  @opindex Wno-stack-protector
-@@ -6317,7 +6333,7 @@ so, the first branch is redirected to ei
+@@ -6319,7 +6335,7 @@ so, the first branch is redirected to ei
  second branch or a point immediately following it, depending on whether
  the condition is known to be true or false.
  
diff --git a/toolchain/gcc/patches/4.6.1/993-arm_insn-opinit-RTX_CODE-fixup.patch b/toolchain/gcc/patches/4.6.2/993-arm_insn-opinit-RTX_CODE-fixup.patch
similarity index 100%
rename from toolchain/gcc/patches/4.6.1/993-arm_insn-opinit-RTX_CODE-fixup.patch
rename to toolchain/gcc/patches/4.6.2/993-arm_insn-opinit-RTX_CODE-fixup.patch
diff --git a/toolchain/gcc/patches/4.6.1/999-coldfire.patch b/toolchain/gcc/patches/4.6.2/999-coldfire.patch
similarity index 79%
rename from toolchain/gcc/patches/4.6.1/999-coldfire.patch
rename to toolchain/gcc/patches/4.6.2/999-coldfire.patch
index cda4237b432d3fde1b23859bfa3297e32c85ecb7..6083e0bf8242b9d0dc8894ce7de3e6f82cb2616e 100644
--- a/toolchain/gcc/patches/4.6.1/999-coldfire.patch
+++ b/toolchain/gcc/patches/4.6.2/999-coldfire.patch
@@ -1,6 +1,6 @@
 --- a/gcc/config.gcc
 +++ b/gcc/config.gcc
-@@ -1791,6 +1791,7 @@ m68k-*-linux*)		# Motorola m68k's runnin
+@@ -1804,6 +1804,7 @@ m68k-*-linux*)		# Motorola m68k's runnin
  	if test x$sjlj != x1; then
  	    tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
  	fi