Question: I'm using gcc 4.6 in c++0x mode. I've noticed I don't seem to get any compiler errors if I use vectors and other STL containers but don't include their associated header files. Was this by design? What's the preferred practice?

I do always use explicitly specify the std namespace... but I always thought that the header had to be included even if the namespace is specified.

This seems like a strange default if it's preferable to include the headers since it's doubtful that I'll get things right 100% of the time without help from the compiler.

Answer: 
The "modified closure" here is `service`. So... don't reassign `service`.
The real bug is in trying to call function in context of expression, which make no sence for an expression representing a database operation.
I suppose you actually tried the following:

```
// Database operation, no soap client funny business here.
 var list = (
  from u in _db.Sessions
  where u.DeletedOn == null
  orderby x.CreatedOn descending
  select new
  {
   SessionId = u.UploadSessionId,
   FileName = u.FileName,
   CreatedBy = u.User.UserName,
   Partner = u.Company.Name,
   CreatedOn = u.CreatedOn,
  }).ToList();

// From now on you are not in a database anymore, it's pure linq-to-objects. You can call the service.
ServiceSoapClient service = new ServiceSoapClient();
var dataSource = (from u in list select new {
 SessionId = u.SessionId,
 FileName = u.FileName,
 CreatedBy = u.CreatedBy,
 Partner = u.Partner,
 CreatedOn = u.CreatedOn,
 Visible = service.IsSessionProcessing(u.SessionId)
}).ToList();

```