diff --git a/.travis.yml b/.travis.yml
index 4449d455af783b610dc1dce93850c46964c19d36..33d4ee555478c37e79a9b6c6944076e26fef522c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,15 +4,16 @@ compiler:
 
 before_script:
   - sudo add-apt-repository -y ppa:fkrull/deadsnakes
+  - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
   - sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded
   - sudo apt-get update -qq
-  - sudo apt-get install -y python3.3 python3 gcc-arm-none-eabi
+  - sudo apt-get install -y python3.3 python3 gcc-4.7 gcc-arm-none-eabi
 
 script:
-  - make -C bare-arm
-  - make -C stmhal
-  - make -C unix-cpy
-  - make -C unix
+  - make -C bare-arm CC=gcc-4.7
+  - make -C stmhal CC=gcc-4.7
+  - make -C unix-cpy CC=gcc-4.7
+  - make -C unix CC=gcc-4.7
   - cd tests && MICROPY_CPYTHON3=python3.3 ./run-tests
 
 after_failure: for exp in *.exp; do testbase=$(basename $exp .exp); echo -e "\nFAILURE $testbase"; diff $testbase.exp $testbase.out; done