CPAN

the status of CPAN mirrors

date:Thu Feb 19 07:22:02 2026 (UTC)
last check : Thu Feb 19 07:22:02 2026 (UTC)

CPAN links


regions

 Master   ae   ar   at   au   az   bg   br   by   ca   cl   cn   cr   cz   de   dk   ec   es   fi   fr   gr   hr   id   ie   in   ir   it   jp   ke   kr   md   nc   nl   no   nz   ph   pl   pt   ro   rs   ru   se   sg   si   sk   tw   ug   uk   us   uy   vn   za   zz 

report

251 sites in 53 regions
0 bad -- 116 older than 4.0 days -- 80 unreachable for more than 6 hours
last probes : 170 were ok, 2 had '<!DOCTYPE', 3 had 'Unknown module ..', 1 had 'chroot failed', 5 had 'hangs', 1 had 'max connections..', 54 had no time, 15 had site not found
mean mirror age is 175.6 days, std_dev 286.5 days, median 2.3 days
CPAN site -- home type mirror age,
daily stats
last probe,
probe stats
last stat
Master
cpan-rsync.perl.org::CPAN  @ rsync 5 minutes
renewed
ok
Argentina
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Australia
cpan.mirror.digitalpacific.com.au  @ http 128.2 days
renewed
ok
cpan.mirror.digitalpacific.com.au::cpan  @ rsync 128.2 days
118.3 days
no time
cpan.mirror.serversaustralia.com.au  @ http 5 hours
2 hours
ok
mirror.internode.on.net  @ ftp 128.2 days
3 hours
ok
mirror.internode.on.net::cpan  @ rsync 128.2 days
1 hour
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Austria
mirror.easyname.at  @ ftp 3.1 days
3 hours
ok
mirror.easyname.at  @ http 3.1 days
renewed
ok
Azerbaijan
mirror.yer.az  @ http 6.0 days
renewed
ok
Belarus
ftp.byfly.by  @ ftp 4 hours
3 hours
ok
ftp.byfly.by  @ http 45 minutes
renewed
ok
ftp.byfly.by::CPAN  @ rsync 2 hours
2 hours
ok
mirror.datacenter.by  @ ftp 9.1 days
1 hour
ok
mirror.datacenter.by  @ http 9.1 days
2 hours
ok
mirror.datacenter.by::CPAN  @ rsync 9.0 days
9.0 days
no time
Brazil
mirror.pop-sc.rnp.br  @ http 3.0 days
2 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Bulgaria
mirrors.neterra.net  @ ftp 12 hours
2 hours
ok
mirrors.neterra.net  @ http 12 hours
2 hours
ok
mirrors.neterra.net::CPAN  @ rsync 2 hours
1 hour
ok
mirrors.netix.net  @ ftp 12 hours
2 hours
ok
mirrors.netix.net  @ http 12 hours
2 hours
ok
mirrors.netix.net::CPAN  @ rsync 2 hours
1 hour
ok
Canada  -  9 sites
mirror.its.dal.ca  @ ftp 21 hours
3 hours
ok
mirror.its.dal.ca  @ http 21 hours
2 hours
ok
CPAN.mirror.rafal.ca  @ ftp 19 hours
1 hour
ok
CPAN.mirror.rafal.ca  @ http 19 hours
2 hours
ok
CPAN.mirror.rafal.ca::CPAN  @ rsync 19 hours
1 hour
ok
mirror.csclub.uwaterloo.ca  @ ftp 4 hours
3 hours
ok
mirror.csclub.uwaterloo.ca  @ http 4 hours
1 hour
ok
mirror.csclub.uwaterloo.ca::CPAN  @ rsync 4 hours
3 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Chile
cpan.dcc.uchile.cl  @ ftp 498.8 days
498.8 days
no time
cpan.dcc.uchile.cl  @ http 210.8 days
210.8 days
no time
cpan.metacpan.org  @ http 25 minutes
renewed
ok
China  -  7 sites
mirror.lzu.edu.cn  @ http 1 hour
1 hour
ok
mirrors.neusoft.edu.cn  @ http 157.0 days
157.0 days
no time
mirrors.ustc.edu.cn  @ http 12 hours
3 hours
ok
mirrors.163.com  @ http 64.2 days
63.2 days
no time
mirror-hk.koddos.net  @ http 395.0 days
renewed
ok
mirror-hk.koddos.net::CPAN  @ rsync 395.0 days
2 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Costa Rica
mirrors.ucr.ac.cr  @ http 31 hours
1 hour
ok
Croatia
ftp.carnet.hr  @ ftp 31 hours
1 hour
ok
ftp.carnet.hr  @ http 31 hours
renewed
ok
Czech Republic
mirror.dkm.cz  @ ftp 1080.0 days
1079.7 days
no time
mirror.dkm.cz  @ http 10.5 days
9.8 days
no time
mirror.dkm.cz::cpan  @ rsync 10.5 days
9.7 days
'Unknown module ..'
ftp.fi.muni.cz  @ ftp 6 hours
2 hours
ok
mirrors.nic.cz  @ http 141.7 days
140.8 days
no time
mirrors.nic.cz::CPAN  @ rsync 170.2 days
169.8 days
no time
Denmark
mirrors.dotsrc.org  @ ftp 22 hours
3 hours
ok
mirrors.dotsrc.org  @ http 22 hours
1 hour
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Earth
www.cpan.org  @ http 3 hours
3 hours
ok
Ecuador
mirror.cedia.org.ec  @ ftp 1 hour
1 hour
ok
mirror.cedia.org.ec  @ http 25 minutes
renewed
ok
mirror.cedia.org.ec::CPAN  @ rsync 3 hours
3 hours
ok
Finland
ftp.funet.fi  @ ftp 4 hours
renewed
ok
rsync.nic.funet.fi::CPAN  @ rsync 4 hours
1 hour
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
France  -  8 sites
mirror.ibcp.fr  @ http 128.2 days
1 hour
ok
ftp.lip6.fr  @ ftp 11 hours
2 hours
ok
ftp.lip6.fr  @ http 11 hours
2 hours
ok
cpan.mines-albi.fr  @ http 508.8 days
508.8 days
no time
cpan.mirrors.ovh.net  @ http 2.2 days
renewed
ok
cpan.tetaneutral.net  @ http 6 hours
1 hour
ok
cpan.tetaneutral.net::cpan  @ rsync 6 hours
2 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Germany  -  25 sites
mirror.23m.com  @ http 2 hours
renewed
ok
mirror.23m.com::cpan  @ rsync 2 hours
2 hours
ok
mirror.softaculous.com  @ http 266.7 days
266.6 days
no time
mirror.checkdomain.de  @ ftp 3 hours
renewed
ok
mirror.checkdomain.de  @ http 3 hours
2 hours
ok
ftp.fu-berlin.de  @ ftp 7 hours
2 hours
ok
ftp.gwdg.de  @ ftp 11 hours
3 hours
ok
ftp.gwdg.de  @ http 11 hours
renewed
ok
ftp.gwdg.de::pub/languages/perl/CPAN  @ rsync 11 hours
2 hours
ok
ftp-stud.hs-esslingen.de  @ http 2 hours
renewed
ok
ftp-stud.hs-esslingen.de::CPAN  @ rsync 7 hours
3 hours
ok
mirror.netcologne.de  @ ftp 6 hours
1 hour
ok
mirror.netcologne.de  @ http 6 hours
3 hours
ok
mirror.netcologne.de::cpan  @ rsync 6 hours
renewed
ok
cpan.noris.de  @ http 157.2 days
157.1 days
site not found
www.planet-elektronik.de  @ http 8 hours
renewed
ok
ftp.halifax.rwth-aachen.de  @ ftp 125.6 days
renewed
ok
ftp.halifax.rwth-aachen.de  @ http 125.6 days
3 hours
ok
ftp.halifax.rwth-aachen.de::cpan  @ rsync 125.6 days
renewed
ok
cpan.mirror.iphh.net  @ ftp 2.3 days
2 hours
ok
cpan.mirror.iphh.net  @ http 2.3 days
2 hours
ok
mirror.de.leaseweb.net  @ ftp 1 hour
renewed
ok
mirror.de.leaseweb.net  @ http 25 hours
1 hour
ok
mirror.de.leaseweb.net::CPAN  @ rsync 25 hours
4 hours
'max connections..'
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Greece
ftp.ntua.gr  @ ftp 5 minutes
renewed
ok
ftp.ntua.gr  @ http 5 minutes
renewed
ok
ftp.ntua.gr::CPAN  @ rsync 3 hours
3 hours
ok
India
cpan.excellmedia.net  @ http 807.4 days
3 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Indonesia
mirror.biznetgio.com  @ http 3.5 days
1 hour
ok
cpan.pesat.net.id  @ http 2.7 days
renewed
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Iran
mirror.rasanegar.com  @ http 662.7 days
662.7 days
site not found
Ireland
ftp.heanet.ie  @ ftp 472.2 days
434.9 days
'hangs'
ftp.heanet.ie  @ http 472.2 days
434.0 days
no time
ftp.heanet.ie::mirrors/ftp.perl.org/pub/CPAN  @ rsync 472.2 days
434.8 days
no time
Italy
cpan.mirror.garr.it  @ http 129.4 days
128.9 days
site not found
cpan.panu.it  @ http 667.8 days
667.6 days
site not found
ftp.panu.it  @ ftp 667.8 days
667.6 days
site not found
rsync.panu.it::CPAN  @ rsync 667.5 days
667.5 days
site not found
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Japan  -  14 sites
ftp.jaist.ac.jp  @ ftp 3 hours
1 hour
ok
ftp.jaist.ac.jp  @ http 3 hours
2 hours
ok
ftp.jaist.ac.jp::pub/CPAN  @ rsync 3 hours
1 hour
ok
ftp.yz.yamagata-u.ac.jp  @ ftp 5 hours
3 hours
ok
ftp.yz.yamagata-u.ac.jp  @ http 5 hours
2 hours
ok
ftp.nara.wide.ad.jp  @ ftp 13.6 days
3 hours
ok
ftp.nara.wide.ad.jp  @ http 13.6 days
2 hours
ok
ftp.nara.wide.ad.jp::cpan  @ rsync 13.6 days
renewed
ok
ftp.kddilabs.jp  @ ftp 233.1 days
233.0 days
no time
ftp.kddilabs.jp::cpan  @ rsync 233.1 days
233.0 days
no time
ftp.riken.jp  @ ftp 626.3 days
626.2 days
no time
ftp.riken.jp  @ http 2 hours
1 hour
ok
ftp.riken.jp::cpan  @ rsync 2 hours
1 hour
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Kenya
mirror.liquidtelecom.com  @ ftp 443.9 days
443.9 days
no time
mirror.liquidtelecom.com  @ http 4 hours
3 hours
ok
mirror.liquidtelecom.com::CPAN  @ rsync 45 minutes
renewed
ok
Korea, Republic of
cpan.mirror.cdnetworks.com  @ ftp 318.4 days
318.2 days
no time
cpan.mirror.cdnetworks.com  @ http 69.4 days
67.5 days
no time
mirror.navercorp.com  @ http 2.5 days
1 hour
ok
ftp.kr.freebsd.org  @ ftp 6 hours
3 hours
ok
ftp.kr.freebsd.org  @ http 429.8 days
429.8 days
no time
Moldova
mirror.as43289.net  @ ftp 167.0 days
1 hour
ok
mirror.as43289.net  @ http 167.0 days
1 hour
ok
mirror.as43289.net::CPAN  @ rsync 167.0 days
3 hours
ok
Netherlands  -  14 sites
mirror.koddos.net  @ http 394.7 days
3 hours
ok
mirror.koddos.net::CPAN  @ rsync 394.7 days
2 hours
ok
mirror.nl.leaseweb.net  @ http 13 hours
2 hours
ok
mirror.nl.leaseweb.net::CPAN  @ rsync 13 hours
1 hour
ok
mirror.transip.net  @ ftp 381.2 days
381.0 days
no time
mirror.transip.net  @ http 380.8 days
380.8 days
'<!DOCTYPE'
mirror.transip.net::CPAN  @ rsync 380.8 days
380.8 days
'Unknown module ..'
ftp.nluug.nl  @ ftp 461.3 days
2.9 days
no time
ftp.nluug.nl  @ http 461.3 days
4.0 days
no time
ftp.nluug.nl::CPAN  @ rsync 461.3 days
3.0 days
'chroot failed'
cpan.mirror.triple-it.nl  @ http 20 hours
2 hours
ok
ftp.tudelft.nl  @ ftp 128.2 days
1 hour
ok
ftp.tudelft.nl  @ http 128.2 days
renewed
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
New Caledonia
cpan.lagoon.nc  @ ftp 2.3 days
3 hours
ok
cpan.lagoon.nc  @ http 2.3 days
renewed
ok
cpan.lagoon.nc::cpan  @ rsync 2.3 days
2 hours
ok
New Zealand  -  7 sites
mirror.webtastix.net  @ ftp 859.7 days
859.6 days
no time
mirror.webtastix.net  @ http 859.7 days
859.4 days
'hangs'
mirror.webtastix.net::CPAN  @ rsync 859.7 days
859.5 days
no time
cpan.catalyst.net.nz  @ http 177.0 days
176.8 days
site not found
cpan.inspire.net.nz  @ ftp 1 hour
1 hour
ok
cpan.inspire.net.nz  @ http 5 minutes
renewed
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Norway
cpan.uib.no  @ http 33.0 days
1 hour
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Philippines
mirror.rise.ph  @ ftp 331.3 days
303.2 days
no time
mirror.rise.ph  @ http 128.2 days
renewed
ok
Poland
ftp.agh.edu.pl  @ ftp 21 hours
renewed
ok
ftp.agh.edu.pl  @ http 21 hours
2 hours
ok
Portugal
cpan.perl.pt  @ http 1106.5 days
1106.5 days
'<!DOCTYPE'
rsync.cpan.perl.pt::cpan  @ rsync 1106.5 days
1106.5 days
no time
mirrors.up.pt  @ ftp 3 hours
2 hours
ok
mirrors.up.pt  @ http 4 hours
3 hours
ok
mirrors.up.pt::CPAN  @ rsync 261.9 days
261.9 days
'hangs'
cpan.zbr.pt  @ http 1 hour
1 hour
ok
Romania  -  8 sites
mirrors.nxthost.com  @ http 576.1 days
576.0 days
no time
ftp.lug.ro  @ http 1.9 days
2 hours
ok
mirrors.m247.ro  @ http 77.9 days
renewed
ok
mirrors.m247.ro::CPAN  @ rsync 77.9 days
renewed
ok
mirrors.nav.ro  @ ftp 664.2 days
664.0 days
no time
mirrors.nav.ro  @ http 664.2 days
664.0 days
no time
mirrors.nav.ro::CPAN  @ rsync 664.2 days
664.0 days
'Unknown module ..'
mirrors.xservers.ro  @ http 400.9 days
381.0 days
'hangs'
Russian Federation  -  12 sites
ftp.aha.ru  @ ftp 412.2 days
34.9 days
no time
cpan-mirror.rbc.ru  @ http 1 hour
1 hour
ok
cpan.rinet.ru  @ ftp 997.2 days
996.5 days
site not found
cpan.rinet.ru  @ http 997.2 days
996.5 days
site not found
mirror.rol.ru  @ http 15 hours
3 hours
ok
mirror.truenetwork.ru  @ ftp 2 hours
1 hour
ok
mirror.truenetwork.ru  @ http 2 hours
2 hours
ok
mirror.truenetwork.ru::cpan  @ rsync 2 hours
2 hours
ok
cpan.uni-altai.ru  @ http 7.5 days
3 hours
ok
mirror.yandex.ru  @ ftp 3 hours
2 hours
ok
mirror.yandex.ru  @ http 3 hours
3 hours
ok
mirror.yandex.ru::mirrors/cpan  @ rsync 7 hours
2 hours
ok
Serbia
mirror.sbb.rs  @ ftp 61.4 days
renewed
ok
mirror.sbb.rs  @ http 61.4 days
3 hours
ok
Singapore
cpan.mirror.choon.net  @ http 55.1 days
1 hour
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Slovakia
tux.rainside.sk  @ http 2 hours
renewed
ok
Slovenia
ftp.arnes.si  @ ftp 590.2 days
163.1 days
no time
ftp.arnes.si  @ http 590.2 days
163.1 days
no time
South Africa  -  8 sites
cpan.saix.net  @ http 2.8 days
3 hours
ok
ftp.saix.net  @ ftp 2.8 days
3 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
cpan.mirror.ac.za  @ ftp 161.9 days
145.9 days
no time
cpan.mirror.ac.za  @ http 161.9 days
161.8 days
no time
cpan.mirror.ac.za::cpan  @ rsync 161.9 days
161.7 days
no time
ftp.is.co.za  @ ftp 9 hours
2 hours
ok
mirror.is.co.za  @ http 9 hours
renewed
ok
Spain
osl.ugr.es  @ http 744.1 days
743.8 days
no time
cpan.metacpan.org  @ http 25 minutes
renewed
ok
Sweden
cpan.metacpan.org  @ http 25 minutes
renewed
ok
ftp.acc.umu.se  @ ftp 637.1 days
636.8 days
no time
ftp.acc.umu.se  @ http 637.1 days
636.8 days
no time
ftp.acc.umu.se::mirror/CPAN  @ rsync 637.1 days
636.8 days
no time
Taiwan
ftp.ubuntu-tw.org  @ ftp 15 hours
3 hours
ok
ftp.ubuntu-tw.org  @ http 15 hours
3 hours
ok
ftp.ubuntu-tw.org::CPAN  @ rsync 15 hours
2 hours
ok
Uganda
mirror.kiu.ac.ug  @ http 598.4 days
598.0 days
site not found
mirror.ucu.ac.ug  @ http 1398.4 days
724.1 days
no time
United Arab Emirates
cpan.metacpan.org  @ http 25 minutes
renewed
ok
United Kingdom  -  18 sites
cpan.mirror.anlx.net  @ http 167.1 days
166.9 days
no time
mirrors.coreix.net  @ http 31 hours
renewed
ok
mirror.sov.uk.goscomb.net  @ http 721.8 days
721.7 days
no time
mirrors.uk2.net  @ ftp 44.7 days
1 hour
ok
mirrors.uk2.net::CPAN  @ rsync 44.7 days
3 hours
ok
cpan.mirrors.uk2.net  @ http 44.7 days
3 hours
ok
mirrors.gethosted.online  @ http 7 hours
2 hours
ok
mirrors.gethosted.online::cpan  @ rsync 400.6 days
400.1 days
no time
cpan.cpantesters.org  @ http 29 hours
29 hours
no time
cpan.metacpan.org  @ http 25 minutes
renewed
ok
ftp.mirrorservice.org  @ ftp 12 hours
3 hours
ok
rsync.mirrorservice.org::cpan.perl.org/CPAN  @ rsync 12 hours
renewed
ok
www.mirrorservice.org  @ http 12 hours
renewed
ok
mirror.ox.ac.uk  @ ftp 142.3 days
132.6 days
no time
mirror.ox.ac.uk  @ http 142.3 days
132.5 days
no time
mirror.bytemark.co.uk  @ ftp 1092.9 days
1092.8 days
no time
mirror.bytemark.co.uk  @ http 1093.1 days
1093.0 days
no time
mirror.bytemark.co.uk::CPAN  @ rsync 193.1 days
1 hour
ok
United States  -  33 sites
mirror.cogentco.com  @ ftp 20 hours
3 hours
ok
mirror.cogentco.com  @ http 2 hours
1 hour
ok
mirror.cogentco.com::CPAN  @ rsync 20 hours
3 hours
ok
cpan.develooper.com  @ http 3 hours
1 hour
ok
cpan.mirrors.hoobly.com  @ http 5 hours
1 hour
ok
mirrors.namecheap.com  @ http 766.0 days
766.0 days
site not found
mirrors.namecheap.com::CPAN  @ rsync 766.0 days
766.0 days
site not found
cpan.pair.com  @ http 10 minutes
renewed
ok
mirror.xmission.com  @ ftp 28 hours
3 hours
ok
mirrors.rit.edu  @ ftp 28 hours
1 hour
ok
mirrors.rit.edu  @ http 28 hours
renewed
ok
mirrors.rit.edu::cpan  @ rsync 28 hours
1 hour
ok
mirror.uic.edu  @ http 45.9 days
42.6 days
no time
mirror.uic.edu::CPAN  @ rsync 45.9 days
42.6 days
no time
cpan.cs.utah.edu  @ ftp 355.1 days
354.8 days
no time
cpan.cs.utah.edu  @ http 2 hours
2 hours
ok
cpan.cs.utah.edu::CPAN  @ rsync 2 hours
renewed
ok
ftp.wayne.edu  @ ftp 19 hours
2 hours
ok
ftp.wayne.edu  @ http 19 hours
renewed
ok
mirror.datapipe.net  @ http 728.9 days
728.8 days
'hangs'
mirror.low-orbit.net  @ http 566.1 days
2 hours
ok
mirror.metrocast.net  @ http 1.8 days
1 hour
ok
mirrors.syringanetworks.net  @ ftp 596.8 days
596.5 days
site not found
mirrors.syringanetworks.net  @ http 596.8 days
596.5 days
site not found
mirrors.syringanetworks.net::CPAN  @ rsync 596.5 days
596.4 days
site not found
mirrors.ibiblio.org  @ http 28 hours
3 hours
ok
cpan.metacpan.org  @ http 25 minutes
renewed
ok
ftp.osuosl.org  @ ftp 1.6 days
3 hours
ok
ftp.osuosl.org  @ http 2 hours
1 hour
ok
searchcpan.org  @ http 61.9 days
2 hours
ok
mirror.team-cymru.org  @ ftp 4 hours
2 hours
ok
mirror.team-cymru.org  @ http 4 hours
3 hours
ok
mirror.team-cymru.org::CPAN  @ rsync 4 hours
1 hour
ok
Uruguay
espejito.fder.edu.uy  @ http 4 hours
renewed
ok
Viet Nam
mirror.downloadvn.com  @ http 402.3 days
232.7 days
no time

age histogram

39 sites





 age → | ←  0 ≤ age ≤ 2.0 days  → |  48h < age ≤ 96h   old   bad 
 251 sites  |  121 sites  |  14 sites   116 sites   0 sites 

each unit represents 2.2 mirror sites.

legend

project site -- home

project site is an url. The href is the href for the site in the list of mirrors, usually the root of the mirrored file tree. The text is the site of that url.

home (represented by the @-symbol) is an url pointing to the document root of the site. This pointer is useful if the project site url is invalid, possibly because the mirror site moved the archive.

type

Indicates the type (ftp or http) of the project site and home urls.

mirror age, daily stats

The mirror age is based upon the last successful probe.

Once a day the status of a mirror site is determined. The status (represented by a colored block) is appended to the right of the status history (right is recent). More precise, the status block is appended if the last status block was appended 24 (or more) hours ago.

The status of a mirror depends on its age and a few configuration parameters :

status age
this project in general
min max min max
fresh 0 44h + 4h 0 min_sync + max_poll
oldish 44h + 4h 92h + 4h min_sync + max_poll max_sync + max_poll
old 92h + 4h max_sync + max_poll
bad the site or mirror tree was never found

last probe, probe stats

Last probe indicates when the last successful probe was made. Probe stats gives the probe history (right is recent). A probe is either a success or a failure.

last stat

Last stat gives the status of the last probe.

probe results

hours ago succ fail 170 successful, 81 failed
0 43 41
1 43 40
2 43 0
3 41 0

software

mirmon mirmon version 2.12 - Wed Jul 27 16:44:12 2016 - henkp
report by Henk P. Penning, Faculty of Science, Utrecht University Valid HTML 4.01 Transitional