Revised version which replaces an older one.