+diff -Nurp linux-2.6.22-526/include/linux/netfilter/xt_CLASSIFY.h linux-2.6.22-527/include/linux/netfilter/xt_CLASSIFY.h
+--- linux-2.6.22-526/include/linux/netfilter/xt_CLASSIFY.h 2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22-527/include/linux/netfilter/xt_CLASSIFY.h 2008-07-25 14:46:22.000000000 -0400
+@@ -3,6 +3,7 @@
+
+ struct xt_classify_target_info {
+ u_int32_t priority;
++ u_int8_t add_mark;
+ };
+
+ #endif /*_XT_CLASSIFY_H */
+diff -Nurp linux-2.6.22-526/net/netfilter/xt_CLASSIFY.c linux-2.6.22-527/net/netfilter/xt_CLASSIFY.c
+--- linux-2.6.22-526/net/netfilter/xt_CLASSIFY.c 2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22-527/net/netfilter/xt_CLASSIFY.c 2008-07-25 14:50:50.000000000 -0400
+@@ -36,6 +36,9 @@ target(struct sk_buff **pskb,
+ const struct xt_classify_target_info *clinfo = targinfo;
+
+ (*pskb)->priority = clinfo->priority;
++ if (clinfo->add_mark)
++ (*pskb)->priority += (*pskb)->mark;
++
+ return XT_CONTINUE;
+ }
+