--- linux-2.6.25.11-vs2.3.0.34.13.3/net/netlink/af_netlink.c	2008-04-19 15:14:52.000000000 -0400
+++ linux-2.6.25.11-vs2.3.0.34.13.4/net/netlink/af_netlink.c	2008-07-16 00:02:34.000000000 -0400
@@ -1764,6 +1764,8 @@ static struct sock *netlink_seq_socket_i
 			sk_for_each(s, node, &hash->table[j]) {
 				if (iter->p.net != s->sk_net)
 					continue;
+				if (!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT))
+					continue;
 				if (off == pos) {
 					iter->link = i;
 					iter->hash_idx = j;
@@ -1798,7 +1800,8 @@ static void *netlink_seq_next(struct seq
 	s = v;
 	do {
 		s = sk_next(s);
-	} while (s && (iter->p.net != s->sk_net));
+	} while (s && (iter->p.net != s->sk_net ||
+		!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT)));
 	if (s)
 		return s;
 
@@ -1810,7 +1813,8 @@ static void *netlink_seq_next(struct seq
 
 		for (; j <= hash->mask; j++) {
 			s = sk_head(&hash->table[j]);
-			while (s && (iter->p.net != s->sk_net))
+			while (s && (iter->p.net != s->sk_net ||
+				!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT)))
 				s = sk_next(s);
 			if (s) {
 				iter->link = i;
--- linux-2.6.25.11-vs2.3.0.34.13.3/net/unix/af_unix.c	2008-04-19 15:55:39.000000000 -0400
+++ linux-2.6.25.11-vs2.3.0.34.13.4/net/unix/af_unix.c	2008-07-16 00:03:11.000000000 -0400
@@ -2028,6 +2028,8 @@ static struct sock *unix_seq_idx(struct 
 	for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) {
 		if (s->sk_net != iter->p.net)
 			continue;
+		if (!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT))
+			continue;
 		if (off == pos)
 			return s;
 		++off;
@@ -2054,7 +2056,8 @@ static void *unix_seq_next(struct seq_fi
 		sk = first_unix_socket(&iter->i);
 	else
 		sk = next_unix_socket(&iter->i, sk);
-	while (sk && (sk->sk_net != iter->p.net))
+	while (sk && (sk->sk_net != iter->p.net ||
+		!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT)))
 		sk = next_unix_socket(&iter->i, sk);
 	return sk;
 }
