
New BNP Councillor Sunday May 14th the Rev Robert West , a Conservative councillor on South Holland District council in Lincolnshire , ' phoned to say he had finally decided to join the BNP , whilst still retaining his council seat . Rob had previously addressed the demonstration outside Leeds Crown court on the opening day of the recent Griffin/Collett trial , and was featured on the BBC TV regional news after being subsequently suspended by Tory central office . In a Press Release Rev . West said : " I have decided to seek refuge from Political Correctness this day by applying for asylum with the British National Party - Britain 's finest and most decent party - in our country 's hour of need . I have done so on the anniversary of the foundation of the state of Israel , and of the secure frontiers needed to uphold the security of the Jewish people . The British people likewise require secure frontiers to uphold their freedoms . We all do . Hell is a place where there are no frontiers or boundaries as anyone who enters a modern class room now knows . Mass immigration and our submersion in the EU has now reached the stage where we must do something . David Cameron has failed to address these issues and has instead defamed those who do . The colonisation of the UK is a Far Right policy of which he should be ashamed . The local Conservative association dealt with an issue of me addressing the BNP - I was tried locally by my peers and with the opportunity to speak in my own defence . I was acquitted as a Christian of all wrong doing , by the local Conservative branch . I was then at once sentenced by the Far Right central office to a lengthy suspension . Central Office has said I should have nothing to do with the Far Right and so that is why I am now having nothing to do with them . If they cannot understand and observe English justice then they are not to be trusted with English governance . The Conservative Party 's list of candidates which deliberately exclude white male candidates in favour of women , non white and homosexual or lesbian candidates , is discrimination of the worst kind . Whilst David Cameron and his merry men pose as saving the planet , they have left their own house in disorder " Council Meeting Rob tells me that at the council meeting days after his defection to the BNP he was voted onto two committees , had respect from colleagues , and was working well with political opponents , many of whom supported his views on race and immigration . He added that so many people on South Holland district council were " fed up " with Tory central office control . There could be more defections soon ... . . See good media coverage on the local BBC site and in The Times From the Sublime to the Ridiculous Content to insult the increasing number of their readers who support , vote for , or are even members of the BNP , newspaper hacks are apoplectic with rage and hatred over our progress . Typical is Richard Stott ( known affectionately as " Stotty " ) writing in the ghastly Sunday Mirror - Under the headline " GOD'S GIFT TO RACISTS " he refers to " the smarmy fruitcakes of the British National Party " and " Nick Griffin 's BNP thugs " . He even predicts " They have been handed all the material [ through Home Office incompetence ] they need to preach their odious brand of hatred , fear , lies and bigotry [ not to be confused with Snotty 's odious brand of hatred , lies and bigotry - Ed ] . They will peddle it to the poor and dispossessed and find fertile ground . Distrust and disillusion have always been the stock in trade of those who seek to sell the all-white Little England false dawns of the BNP . " Snotty proclaims loftily that " This country needs immigrants , all wealthy first world societies do . All civilised countries should offer a haven to those who are oppressed and in danger at home . " He concludes " The only winners from this will be Griffin 's rabble . The men who wrap themselves in hate , masquerading the red white and blue of the Union Jack " . Good old Snotty - tell us , how much do you get paid for writing this crap ? Boycott the Daily Mirror and Sunday Mirror Meanwhile , BNP supporters should stop buying the Mirror , say , once a week at first , then see how much Snotty 's wages will have to be cut as the circulation of Britain 's worst newspaper falls even further . See silly Snotty 's piece here . Even worse ? And finally - mentioning the Mirror as Britain 's worst newspaper , reminds me there is another as bad ( or probably worse ) - the Sun . Readers will be pleased to know that I have taken the Sun to the Press Complaints Commission ( PCC ) over their poisonous centre page fantasy ( May 3rd ) about how , apparently , they think the England football team would look if the BNP " was in power " . The story was originally made up by the Searchlight gang , who are even selling postcards featuring the " England football team " minus black players and minus Beckham ( " quarter Jewish " ) and Rooney ( " part Irish " ) . Under PCC codes on accuracy , papers are not to publish material which is " distorted , misleading or inaccurate " . Seems pretty straightforward to me , but I will keep you up to date at the way I expect the PCC and the editors to wriggle and squirm their way out of this one . The press have been drinking at the last chance saloon for far too long . See here . Do you have a comment to make about this article ? If so write to the usual email address . All material published on these pages represents the personal views of the individual columnists and should not be taken to represent official BNP policy , which is decided by the Chairman after a period of ongoing consultation and discussion at the annual conference each November . 