Contributed by Matthijs Herzberg
Contributed by TypeMates
Contributed by Jens Riedweg
Contributed by Stephen Coles