diff --git a/localtime.c b/localtime.c
index 1568aac..260c015 100644
--- a/localtime.c
+++ b/localtime.c
@@ -598,12 +598,12 @@ tzloadbody(char const *name, struct state *sp, bool doextend,
 			  if (gotabbr == 2) {
 			    sp->charcnt = charcnt;
 
-			    /* Ignore any transition that was almost surely
-			       generated because of WORK_AROUND_QTBUG_53071 in
-			       zic.c, as it doesn't help here and can run
-			       afoul of bugs in zic 2016j or earlier.  */
-			    if (1 < sp->timecnt
-				&& sp->ats[sp->timecnt - 1] == 0x7fffffff)
+			    /* Ignore any trailing, no-op transitions generated
+			     * by zic as they don't help here and can run afoul
+			     * of bugs in zic 2016j or earlier.  */
+			    while (1 < sp->timecnt &&
+				   sp->types[sp->timecnt - 1] ==
+				       sp->types[sp->timecnt - 2])
 			      sp->timecnt--;
 
 			    for (i = 0; i < ts->timecnt; i++)
