diff --git a/print-symantec.c b/print-symantec.c
index dcff2a6..9e9f8f3 100644
--- a/print-symantec.c
+++ b/print-symantec.c
@@ -19,14 +19,15 @@
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
-#define NETDISSECT_REWORKED
+/* \summary: Symantec Enterprise Firewall printer */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-#include <tcpdump-stdinc.h>
+#include <netdissect-stdinc.h>
 
-#include "interface.h"
+#include "netdissect.h"
 #include "extract.h"
 #include "ethertype.h"
 
@@ -75,7 +76,7 @@
 {
 	u_int length = h->len;
 	u_int caplen = h->caplen;
-	struct symantec_header *sp;
+	const struct symantec_header *sp;
 	u_short ether_type;
 
 	if (caplen < sizeof (struct symantec_header)) {
@@ -88,7 +89,7 @@
 
 	length -= sizeof (struct symantec_header);
 	caplen -= sizeof (struct symantec_header);
-	sp = (struct symantec_header *)p;
+	sp = (const struct symantec_header *)p;
 	p += sizeof (struct symantec_header);
 
 	ether_type = EXTRACT_16BITS(&sp->ether_type);
@@ -96,14 +97,14 @@
 	if (ether_type <= ETHERMTU) {
 		/* ether_type not known, print raw packet */
 		if (!ndo->ndo_eflag)
-			symantec_hdr_print(ndo, (u_char *)sp, length + sizeof (struct symantec_header));
+			symantec_hdr_print(ndo, (const u_char *)sp, length + sizeof (struct symantec_header));
 
 		if (!ndo->ndo_suppress_default_print)
 			ND_DEFAULTPRINT(p, caplen);
-	} else if (ethertype_print(ndo, ether_type, p, length, caplen) == 0) {
+	} else if (ethertype_print(ndo, ether_type, p, length, caplen, NULL, NULL) == 0) {
 		/* ether_type not known, print raw packet */
 		if (!ndo->ndo_eflag)
-			symantec_hdr_print(ndo, (u_char *)sp, length + sizeof (struct symantec_header));
+			symantec_hdr_print(ndo, (const u_char *)sp, length + sizeof (struct symantec_header));
 
 		if (!ndo->ndo_suppress_default_print)
 			ND_DEFAULTPRINT(p, caplen);
