This MR improves upon Hannes Rosenögger's changes:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/364