In 8.3, socreate() does: so = soalloc(CRED_TO_VNET(cred)); Is there a reason why we don't do soalloc(curvnet) here? Since CURVNET_SET() doesn't update the vnet in the thread ucred, which is passed into socreate(), it doesn't take effect for socket creations. Any ideas? -vijay