--- aoenet.c.orig	2006-05-25 16:10:11.000000000 +0000
+++ aoenet.c	2010-09-10 15:03:01.000000000 +0000
@@ -77,8 +77,11 @@
 #define NECODES (sizeof(aoe_errlist) /  sizeof(char *) - 1)
 #if (__FreeBSD_version < 600000)
 #define IFPADDR(ifp) (((struct arpcom *) (ifp))->ac_enaddr)
+#elif (__FreeBSD_version < 700000)
+#define IFPADDR(ifp) IFP2ENADDR(ifp)
 #else
-#define IFPADDR(ifp) IFP2ENADDR(ifp) 
+#include <net/if_dl.h>
+#define IFPADDR(ifp) IF_LLADDR(ifp)
 #endif
 #define IFLISTSZ 1024
 
@@ -223,7 +226,11 @@
 
 		m1->m_ext.ref_cnt = NULL;
 		MEXTADD(m1, f->f_data, len, nilfn, 
+#if (__FreeBSD_version < 800000)
 			NULL, 0, EXT_NET_DRV);
+#else
+			f->f_data, NULL, 0, EXT_NET_DRV);
+#endif
 		m1->m_len = len;
 		m1->m_next = NULL;
         }
