diff --git a/src/timezone/ialloc.c b/src/timezone/ialloc.c
index 0899cb18d82c4f1ba0d760e75fb4c6cd5307f758..a1335075714ad82078ced78ef04455ca13c3bb23 100644
--- a/src/timezone/ialloc.c
+++ b/src/timezone/ialloc.c
@@ -3,7 +3,7 @@
  * 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/timezone/ialloc.c,v 1.5 2004/05/21 20:59:10 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/timezone/ialloc.c,v 1.6 2005/06/20 08:00:51 neilc Exp $
  */
 
 #include "postgres.h"
@@ -38,9 +38,9 @@ irealloc(void *pointer, const int size)
 char *
 icatalloc(char *old, const char *new)
 {
-	register char *result;
-	register int oldsize,
-				newsize;
+	char *result;
+	int oldsize,
+		newsize;
 
 	newsize = (new == NULL) ? 0 : strlen(new);
 	if (old == NULL)
diff --git a/src/timezone/localtime.c b/src/timezone/localtime.c
index 28b8f289a23c4104764dc08531070f698c7940a2..098d6700f92c63ed0f093abfc86174fae96abd5a 100644
--- a/src/timezone/localtime.c
+++ b/src/timezone/localtime.c
@@ -3,7 +3,7 @@
  * 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.10 2005/04/19 03:13:59 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/timezone/localtime.c,v 1.11 2005/06/20 08:00:51 neilc Exp $
  */
 
 /*
@@ -81,15 +81,15 @@ static const char *getzname(const char *strp);
 static const char *getnum(const char *strp, int *nump, int min, int max);
 static const char *getsecs(const char *strp, long *secsp);
 static const char *getoffset(const char *strp, long *offsetp);
-static const char *getrule(const char *strp, struct rule * rulep);
-static void gmtload(struct state * sp);
-static void gmtsub(const pg_time_t *timep, long offset, struct pg_tm * tmp);
-static void localsub(const pg_time_t *timep, long offset, struct pg_tm * tmp, const pg_tz *tz);
+static const char *getrule(const char *strp, struct rule *rulep);
+static void gmtload(struct state *sp);
+static void gmtsub(const pg_time_t *timep, long offset, struct pg_tm *tmp);
+static void localsub(const pg_time_t *timep, long offset, struct pg_tm *tmp, const pg_tz *tz);
 static void timesub(const pg_time_t *timep, long offset,
-		const struct state * sp, struct pg_tm * tmp);
+		const struct state *sp, struct pg_tm *tmp);
 static pg_time_t transtime(pg_time_t janfirst, int year,
-						   const struct rule * rulep, long offset);
-int	tzparse(const char *name, struct state * sp, int lastditch);
+						   const struct rule *rulep, long offset);
+int	tzparse(const char *name, struct state *sp, int lastditch);
 
 /* GMT timezone */
 static struct state gmtmem;
@@ -113,8 +113,8 @@ static struct pg_tm tm;
 static long
 detzcode(const char *codep)
 {
-	register long result;
-	register int i;
+	long result;
+	int i;
 
 	result = (codep[0] & 0x80) ? ~0L : 0L;
 	for (i = 0; i < 4; ++i)
@@ -123,16 +123,16 @@ detzcode(const char *codep)
 }
 
 int
-tzload(register const char *name, register struct state * sp)
+tzload(const char *name, struct state *sp)
 {
-	register const char *p;
-	register int i;
-	register int fid;
+	const char *p;
+	int i;
+	int fid;
 
 	if (name == NULL && (name = TZDEFAULT) == NULL)
 		return -1;
 	{
-		register int doaccess;
+		int doaccess;
 		char		fullname[MAXPGPATH];
 
 		if (name[0] == ':')
@@ -209,7 +209,7 @@ tzload(register const char *name, register struct state * sp)
 		}
 		for (i = 0; i < sp->typecnt; ++i)
 		{
-			register struct ttinfo *ttisp;
+			struct ttinfo *ttisp;
 
 			ttisp = &sp->ttis[i];
 			ttisp->tt_gmtoff = detzcode(p);
@@ -227,7 +227,7 @@ tzload(register const char *name, register struct state * sp)
 		sp->chars[i] = '\0';	/* ensure '\0' at end */
 		for (i = 0; i < sp->leapcnt; ++i)
 		{
-			register struct lsinfo *lsisp;
+			struct lsinfo *lsisp;
 
 			lsisp = &sp->lsis[i];
 			lsisp->ls_trans = detzcode(p);
@@ -237,7 +237,7 @@ tzload(register const char *name, register struct state * sp)
 		}
 		for (i = 0; i < sp->typecnt; ++i)
 		{
-			register struct ttinfo *ttisp;
+			struct ttinfo *ttisp;
 
 			ttisp = &sp->ttis[i];
 			if (ttisstdcnt == 0)
@@ -252,7 +252,7 @@ tzload(register const char *name, register struct state * sp)
 		}
 		for (i = 0; i < sp->typecnt; ++i)
 		{
-			register struct ttinfo *ttisp;
+			struct ttinfo *ttisp;
 
 			ttisp = &sp->ttis[i];
 			if (ttisgmtcnt == 0)
@@ -284,9 +284,9 @@ static const int year_lengths[2] = {
  * character.
  */
 static const char *
-getzname(register const char *strp)
+getzname(const char *strp)
 {
-	register char c;
+	char c;
 
 	while ((c = *strp) != '\0' && !is_digit(c) && c != ',' && c != '-' &&
 		   c != '+')
@@ -301,10 +301,10 @@ getzname(register const char *strp)
  * Otherwise, return a pointer to the first character not part of the number.
  */
 static const char *
-getnum(register const char *strp, int *nump, const int min, const int max)
+getnum(const char *strp, int *nump, int min, int max)
 {
-	register char c;
-	register int num;
+	char c;
+	int num;
 
 	if (strp == NULL || !is_digit(c = *strp))
 		return NULL;
@@ -330,7 +330,7 @@ getnum(register const char *strp, int *nump, const int min, const int max)
  * of seconds.
  */
 static const char *
-getsecs(register const char *strp, long *secsp)
+getsecs(const char *strp, long *secsp)
 {
 	int			num;
 
@@ -370,9 +370,9 @@ getsecs(register const char *strp, long *secsp)
  * Otherwise, return a pointer to the first character not part of the time.
  */
 static const char *
-getoffset(register const char *strp, long *offsetp)
+getoffset(const char *strp, long *offsetp)
 {
-	register int neg = 0;
+	int neg = 0;
 
 	if (*strp == '-')
 	{
@@ -396,7 +396,7 @@ getoffset(register const char *strp, long *offsetp)
  * Otherwise, return a pointer to the first character not part of the rule.
  */
 static const char *
-getrule(const char *strp, register struct rule * rulep)
+getrule(const char *strp, struct rule *rulep)
 {
 	if (*strp == 'J')
 	{
@@ -457,13 +457,13 @@ getrule(const char *strp, register struct rule * rulep)
  * calculate the Epoch-relative time that rule takes effect.
  */
 static pg_time_t
-transtime(const pg_time_t janfirst, const int year,
-		  register const struct rule * rulep, const long offset)
+transtime(const pg_time_t janfirst, int year,
+		  const struct rule *rulep, long offset)
 {
-	register int leapyear;
-	register pg_time_t value = 0;
-	register int i;
-	int			d,
+	int leapyear;
+	pg_time_t value = 0;
+	int			i,
+				d,
 				m1,
 				yy0,
 				yy1,
@@ -556,7 +556,7 @@ transtime(const pg_time_t janfirst, const int year,
  */
 
 int
-tzparse(const char *name, register struct state * sp, const int lastditch)
+tzparse(const char *name, struct state *sp, int lastditch)
 {
 	const char *stdname;
 	const char *dstname = NULL;
@@ -564,10 +564,10 @@ tzparse(const char *name, register struct state * sp, const int lastditch)
 	size_t		dstlen;
 	long		stdoffset;
 	long		dstoffset;
-	register pg_time_t *atp;
-	register unsigned char *typep;
-	register char *cp;
-	register int load_result;
+	pg_time_t *atp;
+	unsigned char *typep;
+	char *cp;
+	int load_result;
 
 	stdname = name;
 	if (lastditch)
@@ -614,8 +614,8 @@ tzparse(const char *name, register struct state * sp, const int lastditch)
 		{
 			struct rule start;
 			struct rule end;
-			register int year;
-			register pg_time_t janfirst;
+			int year;
+			pg_time_t janfirst;
 			pg_time_t	starttime;
 			pg_time_t	endtime;
 
@@ -671,12 +671,12 @@ tzparse(const char *name, register struct state * sp, const int lastditch)
 		}
 		else
 		{
-			register long theirstdoffset;
-			register long theirdstoffset;
-			register long theiroffset;
-			register int isdst;
-			register int i;
-			register int j;
+			long theirstdoffset;
+			long theirdstoffset;
+			long theiroffset;
+			int isdst;
+			int i;
+			int j;
 
 			if (*name != '\0')
 				return -1;
@@ -798,7 +798,7 @@ tzparse(const char *name, register struct state * sp, const int lastditch)
 }
 
 static void
-gmtload(struct state * sp)
+gmtload(struct state *sp)
 {
 	if (tzload(gmt, sp) != 0)
 		(void) tzparse(gmt, sp, TRUE);
@@ -814,11 +814,11 @@ gmtload(struct state * sp)
  * The unused offset argument is for the benefit of mktime variants.
  */
 static void
-localsub(const pg_time_t *timep, const long offset, struct pg_tm * tmp, const pg_tz *tz)
+localsub(const pg_time_t *timep, long offset, struct pg_tm *tmp, const pg_tz *tz)
 {
- 	register const struct state *sp;
-	register const struct ttinfo *ttisp;
-	register int i;
+ 	const struct state *sp;
+	const struct ttinfo *ttisp;
+	int i;
 	const pg_time_t t = *timep;
 
 	sp = &tz->state;
@@ -859,7 +859,7 @@ pg_localtime(const pg_time_t *timep, const pg_tz *tz)
  * gmtsub is to gmtime as localsub is to localtime.
  */
 static void
-gmtsub(const pg_time_t *timep, const long offset, struct pg_tm * tmp)
+gmtsub(const pg_time_t *timep, long offset, struct pg_tm *tmp)
 {
 	if (!gmt_is_set)
 	{
@@ -888,21 +888,21 @@ pg_gmtime(const pg_time_t *timep)
 
 
 static void
-timesub(const pg_time_t *timep, const long offset,
-		register const struct state * sp, register struct pg_tm * tmp)
+timesub(const pg_time_t *timep, long offset,
+		const struct state *sp, struct pg_tm *tmp)
 {
-	register const struct lsinfo *lp;
+	const struct lsinfo *lp;
 
 	/* expand days to 64 bits to support full Julian-day range */
-	register int64 days;
-	register int idays;
-	register long rem;
-	register int y;
-	register int yleap;
-	register const int *ip;
-	register long corr;
-	register int hit;
-	register int i;
+	int64 days;
+	int idays;
+	long rem;
+	int y;
+	int yleap;
+	const int *ip;
+	long corr;
+	int hit;
+	int i;
 
 	corr = 0;
 	hit = 0;
@@ -979,7 +979,7 @@ timesub(const pg_time_t *timep, const long offset,
 #define LEAPS_THRU_END_OF(y)	(((y) + 4800) / 4 - ((y) + 4800) / 100 + ((y) + 4800) / 400)
 	while (days < 0 || days >= (int64) year_lengths[yleap = isleap(y)])
 	{
-		register int newy;
+		int newy;
 
 		newy = y + days / DAYSPERNYEAR;
 		if (days < 0)
@@ -1029,8 +1029,8 @@ pg_next_dst_boundary(const pg_time_t *timep,
 					 int *after_isdst,
 	                 const pg_tz *tz)
 {
-	register const struct state *sp;
-	register const struct ttinfo *ttisp;
+	const struct state *sp;
+	const struct ttinfo *ttisp;
 	int i;
 	int j;
 	const pg_time_t t = *timep;
diff --git a/src/timezone/pgtz.c b/src/timezone/pgtz.c
index 391c3e552c548011f7c54e93fd46ec7f6b83d072..20f4b898c01148541c44ea973aacec374048993e 100644
--- a/src/timezone/pgtz.c
+++ b/src/timezone/pgtz.c
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.34 2005/06/19 21:34:03 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.35 2005/06/20 08:00:51 neilc Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -97,7 +97,7 @@ static void scan_available_timezones(char *tzdir, char *tzdirsub,
  * Get GMT offset from a system struct tm
  */
 static int
-get_timezone_offset(struct tm * tm)
+get_timezone_offset(struct tm *tm)
 {
 #if defined(HAVE_STRUCT_TM_TM_ZONE)
 	return tm->tm_gmtoff;
@@ -128,7 +128,7 @@ build_time_t(int year, int month, int day)
  * Does a system tm value match one we computed ourselves?
  */
 static bool
-compare_tm(struct tm * s, struct pg_tm * p)
+compare_tm(struct tm *s, struct pg_tm *p)
 {
 	if (s->tm_sec != p->tm_sec ||
 		s->tm_min != p->tm_min ||
@@ -155,7 +155,7 @@ compare_tm(struct tm * s, struct pg_tm * p)
  * test time.
  */
 static int
-score_timezone(const char *tzname, struct tztry * tt)
+score_timezone(const char *tzname, struct tztry *tt)
 {
 	int			i;
 	pg_time_t	pgtt;
diff --git a/src/timezone/scheck.c b/src/timezone/scheck.c
index 992739e8156189e76aa8bbd9a66c395a4bc442f1..2849e8b6a76aa2c0f26afe253e2caee2b9408ea2 100644
--- a/src/timezone/scheck.c
+++ b/src/timezone/scheck.c
@@ -3,7 +3,7 @@
  * 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/timezone/scheck.c,v 1.5 2004/05/21 20:59:10 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/timezone/scheck.c,v 1.6 2005/06/20 08:00:51 neilc Exp $
  */
 
 #include "postgres.h"
@@ -14,11 +14,11 @@
 char *
 scheck(const char *string, const char *format)
 {
-	register char *fbuf;
-	register const char *fp;
-	register char *tp;
-	register int c;
-	register char *result;
+	char *fbuf;
+	const char *fp;
+	char *tp;
+	int c;
+	char *result;
 	char		dummy;
 	static char nada;
 
diff --git a/src/timezone/strftime.c b/src/timezone/strftime.c
index cc45527fe4ee0e53d17aa2e86b2c6034e6f6ee3f..e5490319c6ec83ee6e79ca317da8c7cc53c708f3 100644
--- a/src/timezone/strftime.c
+++ b/src/timezone/strftime.c
@@ -15,7 +15,7 @@
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/timezone/strftime.c,v 1.6 2005/04/19 03:13:59 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/timezone/strftime.c,v 1.7 2005/06/20 08:00:51 neilc Exp $
  */
 
 #include "postgres.h"
@@ -102,7 +102,7 @@ static char *_fmt(const char *, const struct pg_tm *, char *,
 
 size_t
 pg_strftime(char *s, size_t maxsize, const char *format,
-			const struct pg_tm * t)
+			const struct pg_tm *t)
 {
 	char	   *p;
 	int			warn;
@@ -116,7 +116,7 @@ pg_strftime(char *s, size_t maxsize, const char *format,
 }
 
 static char *
-_fmt(const char *format, const struct pg_tm * t, char *pt, const char *ptlim,
+_fmt(const char *format, const struct pg_tm *t, char *pt, const char *ptlim,
 	 int *warnp)
 {
 	for (; *format; ++format)
@@ -467,7 +467,7 @@ _fmt(const char *format, const struct pg_tm * t, char *pt, const char *ptlim,
 }
 
 static char *
-_conv(const int n, const char *format, char *pt, const char *ptlim)
+_conv(int n, const char *format, char *pt, const char *ptlim)
 {
 	char		buf[INT_STRLEN_MAXIMUM(int) +1];
 
diff --git a/src/timezone/zic.c b/src/timezone/zic.c
index 1d3695b65910922d5a98f72eceaedec8dd605375..4bb14bfca4823617421b2c207708c802a50466f1 100644
--- a/src/timezone/zic.c
+++ b/src/timezone/zic.c
@@ -3,7 +3,7 @@
  * 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/timezone/zic.c,v 1.14 2005/04/19 03:13:59 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/timezone/zic.c,v 1.15 2005/06/20 08:00:51 neilc Exp $
  */
 
 #include "postgres.h"
@@ -134,11 +134,11 @@ static char *memcheck(char *tocheck);
 static int	mkdirs(char *filename);
 static void newabbr(const char *abbr);
 static long oadd(long t1, long t2);
-static void outzone(const struct zone * zp, int ntzones);
+static void outzone(const struct zone *zp, int ntzones);
 static void puttzcode(long code, FILE *fp);
 static int	rcomp(const void *leftp, const void *rightp);
-static pg_time_t rpytime(const struct rule * rp, int wantedy);
-static void rulesub(struct rule * rp,
+static pg_time_t rpytime(const struct rule *rp, int wantedy);
+static void rulesub(struct rule *rp,
 		const char *loyearp, const char *hiyearp,
 		const char *typep, const char *monthp,
 		const char *dayp, const char *timep);
@@ -390,7 +390,7 @@ memcheck(char *ptr)
  */
 
 static void
-eats(const char *name, const int num, const char *rname, const int rnum)
+eats(const char *name, int num, const char *rname, int rnum)
 {
 	filename = name;
 	linenum = num;
@@ -399,7 +399,7 @@ eats(const char *name, const int num, const char *rname, const int rnum)
 }
 
 static void
-eat(const char *name, const int num)
+eat(const char *name, int num)
 {
 	eats(name, num, (char *) NULL, -1);
 }
@@ -450,9 +450,9 @@ static int	sflag = FALSE;
 int
 main(int argc, char *argv[])
 {
-	register int i;
-	register int j;
-	register int c;
+	int i;
+	int j;
+	int c;
 
 #ifndef WIN32
 	(void) umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH));
@@ -585,8 +585,8 @@ main(int argc, char *argv[])
 static void
 dolink(const char *fromfile, const char *tofile)
 {
-	register char *fromname;
-	register char *toname;
+	char *fromname;
+	char *toname;
 
 	if (fromfile[0] == '/')
 		fromname = ecpyalloc(fromfile);
@@ -625,7 +625,7 @@ dolink(const char *fromfile, const char *tofile)
 			!itsdir(fromname))
 		{
 			const char *s = tofile;
-			register char *symlinkcontents = NULL;
+			char *symlinkcontents = NULL;
 
 			while ((s = strchr(s + 1, '/')) != NULL)
 				symlinkcontents = ecatalloc(symlinkcontents, "../");
@@ -695,8 +695,8 @@ setboundaries(void)
 static int
 itsdir(const char *name)
 {
-	register char *myname;
-	register int accres;
+	char *myname;
+	int accres;
 
 	myname = ecpyalloc(name);
 	myname = ecatalloc(myname, "/.");
@@ -723,12 +723,12 @@ rcomp(const void *cp1, const void *cp2)
 static void
 associate(void)
 {
-	register struct zone *zp;
-	register struct rule *rp;
-	register int base,
-				out;
-	register int i,
-				j;
+	struct zone *zp;
+	struct rule *rp;
+	int base,
+		out;
+	int i,
+		j;
 
 	if (nrules != 0)
 	{
@@ -810,13 +810,13 @@ associate(void)
 static void
 infile(const char *name)
 {
-	register FILE *fp;
-	register char **fields;
-	register char *cp;
-	register const struct lookup *lp;
-	register int nfields;
-	register int wantcont;
-	register int num;
+	FILE *fp;
+	char **fields;
+	char *cp;
+	const struct lookup *lp;
+	int nfields;
+	int wantcont;
+	int num;
 	char		buf[BUFSIZ];
 
 	if (strcmp(name, "-") == 0)
@@ -925,7 +925,7 @@ infile(const char *name)
  *----------
  */
 static long
-gethms(const char *string, const char *errstring, const int signable)
+gethms(const char *string, const char *errstring, int signable)
 {
 	int			hh,
 				mm,
@@ -969,7 +969,7 @@ gethms(const char *string, const char *errstring, const int signable)
 }
 
 static void
-inrule(register char **fields, const int nfields)
+inrule(char **fields, int nfields)
 {
 	static struct rule r;
 
@@ -996,9 +996,9 @@ inrule(register char **fields, const int nfields)
 }
 
 static int
-inzone(register char **fields, const int nfields)
+inzone(char **fields, int nfields)
 {
-	register int i;
+	int i;
 	static char *buf;
 
 	if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS)
@@ -1043,7 +1043,7 @@ inzone(register char **fields, const int nfields)
 }
 
 static int
-inzcont(register char **fields, const int nfields)
+inzcont(char **fields, int nfields)
 {
 	if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS)
 	{
@@ -1054,18 +1054,18 @@ inzcont(register char **fields, const int nfields)
 }
 
 static int
-inzsub(register char **fields, const int nfields, const int iscont)
+inzsub(char **fields, int nfields, int iscont)
 {
-	register char *cp;
+	char *cp;
 	static struct zone z;
-	register int i_gmtoff,
-				i_rule,
-				i_format;
-	register int i_untilyear,
-				i_untilmonth;
-	register int i_untilday,
-				i_untiltime;
-	register int hasuntil;
+	int i_gmtoff,
+		i_rule,
+		i_format;
+	int i_untilyear,
+		i_untilmonth;
+	int i_untilday,
+		i_untiltime;
+	int hasuntil;
 
 	if (iscont)
 	{
@@ -1140,11 +1140,11 @@ inzsub(register char **fields, const int nfields, const int iscont)
 }
 
 static void
-inleap(register char **fields, const int nfields)
+inleap(char **fields, int nfields)
 {
-	register const char *cp;
-	register const struct lookup *lp;
-	register int i,
+	const char *cp;
+	const struct lookup *lp;
+	int			i,
 				j;
 	int			year,
 				month,
@@ -1219,7 +1219,7 @@ inleap(register char **fields, const int nfields)
 	tod = gethms(fields[LP_TIME], _("invalid time of day"), FALSE);
 	cp = fields[LP_CORR];
 	{
-		register int positive;
+		int			positive;
 		int			count;
 
 		if (strcmp(cp, "") == 0)
@@ -1257,7 +1257,7 @@ inleap(register char **fields, const int nfields)
 }
 
 static void
-inlink(register char **fields, const int nfields)
+inlink(char **fields, int nfields)
 {
 	struct link l;
 
@@ -1286,14 +1286,14 @@ inlink(register char **fields, const int nfields)
 }
 
 static void
-rulesub(register struct rule * rp, const char *loyearp, const char *hiyearp,
+rulesub(struct rule *rp, const char *loyearp, const char *hiyearp,
 		const char *typep, const char *monthp, const char *dayp,
 		const char *timep)
 {
-	register const struct lookup *lp;
-	register const char *cp;
-	register char *dp;
-	register char *ep;
+	const struct lookup *lp;
+	const char *cp;
+	char *dp;
+	char *ep;
 
 	if ((lp = byword(monthp, mon_names)) == NULL)
 	{
@@ -1464,17 +1464,17 @@ rulesub(register struct rule * rp, const char *loyearp, const char *hiyearp,
 }
 
 static void
-convert(const long val, char *buf)
+convert(long val, char *buf)
 {
-	register int i;
-	register long shift;
+	int i;
+	long shift;
 
 	for (i = 0, shift = 24; i < 4; ++i, shift -= 8)
 		buf[i] = val >> shift;
 }
 
 static void
-puttzcode(const long val, FILE *fp)
+puttzcode(long val, FILE *fp)
 {
 	char		buf[4];
 
@@ -1496,9 +1496,9 @@ atcomp(const void *avp, const void *bvp)
 static void
 writezone(const char *name)
 {
-	register FILE *fp;
-	register int i,
-				j;
+	FILE *fp;
+	int	i,
+		j;
 	static char *fullname;
 	static struct tzhead tzh;
 	pg_time_t	ats[TZ_MAX_TIMES];
@@ -1660,7 +1660,7 @@ writezone(const char *name)
 }
 
 static void
-doabbr(char *abbr, const char *format, const char *letters, const int isdst)
+doabbr(char *abbr, const char *format, const char *letters, int isdst)
 {
 	if (strchr(format, '/') == NULL)
 	{
@@ -1679,23 +1679,23 @@ doabbr(char *abbr, const char *format, const char *letters, const int isdst)
 }
 
 static void
-outzone(const struct zone * zpfirst, const int zonecount)
+outzone(const struct zone *zpfirst, int zonecount)
 {
-	register const struct zone *zp;
-	register struct rule *rp;
-	register int i,
-				j;
-	register int usestart,
-				useuntil;
-	register pg_time_t starttime = 0;
-	register pg_time_t untiltime = 0;
-	register long gmtoff;
-	register long stdoff;
-	register int year;
-	register long startoff;
-	register int startttisstd;
-	register int startttisgmt;
-	register int type;
+	const struct zone *zp;
+	struct rule *rp;
+	int i,
+		j;
+	int usestart,
+		useuntil;
+	pg_time_t starttime = 0;
+	pg_time_t untiltime = 0;
+	long gmtoff;
+	long stdoff;
+	int year;
+	long startoff;
+	int startttisstd;
+	int startttisgmt;
+	int type;
 	char		startbuf[BUFSIZ];
 
 	/*
@@ -1765,10 +1765,9 @@ outzone(const struct zone * zpfirst, const int zonecount)
 				}
 				for (;;)
 				{
-					register int k;
-					register pg_time_t jtime,
-								ktime = 0;
-					register long offset;
+					int k;
+					pg_time_t jtime, ktime = 0;
+					long offset;
 					char		buf[BUFSIZ];
 
 					if (useuntil)
@@ -1915,11 +1914,11 @@ addtt(const pg_time_t starttime, int type)
 }
 
 static int
-addtype(const long gmtoff, const char *abbr, const int isdst,
-		const int ttisstd, const int ttisgmt)
+addtype(long gmtoff, const char *abbr, int isdst,
+		int ttisstd, int ttisgmt)
 {
-	register int i,
-				j;
+	int i;
+	int j;
 
 	if (isdst != TRUE && isdst != FALSE)
 	{
@@ -1974,10 +1973,10 @@ addtype(const long gmtoff, const char *abbr, const int isdst,
 }
 
 static void
-leapadd(const pg_time_t t, const int positive, const int rolling, int count)
+leapadd(const pg_time_t t, int positive, int rolling, int count)
 {
-	register int i,
-				j;
+	int i;
+	int j;
 
 	if (leapcnt + (positive ? count : 1) > TZ_MAX_LEAPS)
 	{
@@ -2012,8 +2011,8 @@ leapadd(const pg_time_t t, const int positive, const int rolling, int count)
 static void
 adjleap(void)
 {
-	register int i;
-	register long last = 0;
+	int i;
+	long last = 0;
 
 	/*
 	 * propagate leap seconds forward
@@ -2026,7 +2025,7 @@ adjleap(void)
 }
 
 static int
-yearistype(const int year, const char *type)
+yearistype(int year, const char *type)
 {
 	static char *buf;
 	int			result;
@@ -2059,7 +2058,7 @@ lowerit(int a)
 }
 
 static int
-ciequal(register const char *ap, register const char *bp)
+ciequal(const char *ap, const char *bp)
 {
 	while (lowerit(*ap) == lowerit(*bp++))
 		if (*ap++ == '\0')
@@ -2068,7 +2067,7 @@ ciequal(register const char *ap, register const char *bp)
 }
 
 static int
-itsabbr(register const char *abbr, register const char *word)
+itsabbr(const char *abbr, const char *word)
 {
 	if (lowerit(*abbr) != lowerit(*word))
 		return FALSE;
@@ -2083,10 +2082,10 @@ itsabbr(register const char *abbr, register const char *word)
 }
 
 static const struct lookup *
-byword(register const char *word, register const struct lookup * table)
+byword(const char *word, const struct lookup *table)
 {
-	register const struct lookup *foundlp;
-	register const struct lookup *lp;
+	const struct lookup *foundlp;
+	const struct lookup *lp;
 
 	if (word == NULL || table == NULL)
 		return NULL;
@@ -2114,11 +2113,11 @@ byword(register const char *word, register const struct lookup * table)
 }
 
 static char **
-getfields(register char *cp)
+getfields(char *cp)
 {
-	register char *dp;
-	register char **array;
-	register int nsubs;
+	char *dp;
+	char **array;
+	int nsubs;
 
 	if (cp == NULL)
 		return NULL;
@@ -2153,9 +2152,9 @@ getfields(register char *cp)
 }
 
 static long
-oadd(const long t1, const long t2)
+oadd(long t1, long t2)
 {
-	register long t;
+	long t;
 
 	t = t1 + t2;
 	if ((t2 > 0 && t <= t1) || (t2 < 0 && t >= t1))
@@ -2167,9 +2166,9 @@ oadd(const long t1, const long t2)
 }
 
 static pg_time_t
-tadd(const pg_time_t t1, const long t2)
+tadd(const pg_time_t t1, long t2)
 {
-	register pg_time_t t;
+	pg_time_t t;
 
 	if (t1 == max_time && t2 > 0)
 		return max_time;
@@ -2190,13 +2189,13 @@ tadd(const pg_time_t t1, const long t2)
  */
 
 static pg_time_t
-rpytime(register const struct rule * rp, register const int wantedy)
+rpytime(const struct rule *rp, int wantedy)
 {
-	register int y,
-				m,
-				i;
-	register long dayoff;		/* with a nod to Margaret O. */
-	register pg_time_t t;
+	int y,
+		m,
+		i;
+	long dayoff;		/* with a nod to Margaret O. */
+	pg_time_t t;
 
 	if (wantedy == INT_MIN)
 		return min_time;
@@ -2240,7 +2239,7 @@ rpytime(register const struct rule * rp, register const int wantedy)
 	dayoff = oadd(dayoff, eitol(i));
 	if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ)
 	{
-		register long wday;
+		long wday;
 
 #define LDAYSPERWEEK	((long) DAYSPERWEEK)
 		wday = eitol(EPOCH_WDAY);
@@ -2289,7 +2288,7 @@ rpytime(register const struct rule * rp, register const int wantedy)
 static void
 newabbr(const char *string)
 {
-	register int i;
+	int i;
 
 	i = strlen(string) + 1;
 	if (charcnt + i > TZ_MAX_CHARS)
@@ -2304,8 +2303,8 @@ newabbr(const char *string)
 static int
 mkdirs(char *argname)
 {
-	register char *name;
-	register char *cp;
+	char *name;
+	char *cp;
 
 	if (argname == NULL || *argname == '\0')
 		return 0;
@@ -2353,7 +2352,7 @@ mkdirs(char *argname)
 }
 
 static long
-eitol(const int i)
+eitol(int i)
 {
 	long		l;