Hi, i have a very weird fatal exception happening very rarely on my application (compiled under gcc - Ubuntu linux)

it seems that this this function :

Code:
bool GetConnect( ) {return m_Connected;}
causes a Segmentation Fault sometimes (not all the times)

No the instance of the class is not deleted when i call that function.
I tried declaring m_Connected as volatile bool m_Connected but still the error happens.
several different threads also access the function that calls this function.

Code:
bool CPDC :: CBoolExpr(Clients *client)
{
	if(!client)
	{
		return false;
	}
	
	if(client->m_Deleting) // before we delete our instance of Clients* we set this flag. the instance is deleted 240 seconds later.
	{
		
		return false;
	}
	
	if( !client->m_Socket )
	{
	    return false;
	}
	
	cout << "CBE4" << endl;
	if( !client->m_Socket->GetConnected() )
	{
		return false;
	}

	cout << "CBE5" << endl;
	if(client->m_Socket->HasError() )
	{
		return false;
	}

	cout << "CBEE" << endl;
	return true;
}
it always crashes when it outputs CBE4.
to make sure that another thread doesnt crash the application i also tried creating the other threads in completely different timings. It crashes every time on the same line. Although it makes no sense at all..

Did i miss anything?