Manualy add all Josh's changes. I did something wrong when trying to
pull & merge his pull request. Here is his summary:
1. Silenced warnings
2. commit local changes
3. Merge remote-tracking branch 'upstream/master'
4. Merged upstream

Thanks Josh!