diff --git a/print-ah.c b/print-ah.c
index 0badf48..bec6f88 100644
--- a/print-ah.c
+++ b/print-ah.c
@@ -21,40 +21,40 @@
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
-#define NETDISSECT_REWORKED
+/* \summary: IPSEC Authentication Header printer */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-#include <tcpdump-stdinc.h>
+#include <netdissect-stdinc.h>
 
 #include "ah.h"
 
-#include "interface.h"
+#include "netdissect.h"
 #include "extract.h"
 
 int
 ah_print(netdissect_options *ndo, register const u_char *bp)
 {
 	register const struct ah *ah;
-	register const u_char *ep;
 	int sumlen;
-	uint32_t spi;
 
 	ah = (const struct ah *)bp;
-	ep = ndo->ndo_snapend;		/* 'ep' points to the end of available data. */
 
 	ND_TCHECK(*ah);
 
 	sumlen = ah->ah_len << 2;
-	spi = EXTRACT_32BITS(&ah->ah_spi);
 
-	ND_PRINT((ndo, "AH(spi=0x%08x", spi));
+	ND_PRINT((ndo, "AH(spi=0x%08x", EXTRACT_32BITS(&ah->ah_spi)));
 	if (ndo->ndo_vflag)
 		ND_PRINT((ndo, ",sumlen=%d", sumlen));
+	ND_TCHECK_32BITS(ah + 1);
 	ND_PRINT((ndo, ",seq=0x%x", EXTRACT_32BITS(ah + 1)));
-	if (bp + sizeof(struct ah) + sumlen > ep)
-		ND_PRINT((ndo, "[truncated]"));
+	if (!ND_TTEST2(*bp, sizeof(struct ah) + sumlen)) {
+		ND_PRINT((ndo, "[truncated]):"));
+		return -1;
+	}
 	ND_PRINT((ndo, "): "));
 
 	return sizeof(struct ah) + sumlen;
