--- ipfw3-2012.orig/glue.h
+++ ipfw3-2012/glue.h
@@ -377,13 +377,29 @@
 #define flow_daddr fl.nl_u.ip4_u
 #endif
 
-#endif /* __linux__ */
-
 /* 
  * Do not load prio_heap.h header because of conflicting names
  * with our heap functions defined in include/netinet/ipfw/dn_heap.h
  */
 #define _LINUX_PRIO_HEAP_H
+
+/* Do however declare the structure... */
+/**
+ * struct ptr_heap - simple static-sized priority heap
+ * @ptrs - pointer to data area
+ * @max - max number of elements that can be stored in @ptrs
+ * @size - current number of valid elements in @ptrs (in the range 0..@size-1
+ * @gt: comparison operator, which should implement "greater than"
+ */
+struct ptr_heap {
+	void **ptrs;
+	int max;
+	int size;
+	int (*gt)(void *, void *);
+};
+
+#endif /* __linux__ */
+
 /* 
  * The following define prevent the ipv6.h header to be loaded.
  * Starting from the 2.6.38 kernel the ipv6.h file, which is included
