
Crack cocaine misuse is treatable - given the appropriate skills Crack cocaine misuse can be treated effectively , but drug workers need to be provided with the skills to support and promote change amongst misusers . That was the message from the National Treatment Agency at today 's crack cocaine conference in Birmingham . " Research from the USA and the UK demonstrates that cognitive behavioural therapy approaches with a sympathetic counsellors , combined with low waiting times and ongoing aftercare , has a dramatic effect , " explained Ms Dale-Perera , director of quality at the National Treatment Agency . " Fifty-six per cent of those who entered treatment for crack cocaine misuse in the UK in 1998 were still drug-free four years after treatment . The National Treatment Agency ( NTA ) is calling for an improvement in drug services to ensure that drug workers have the knowledge and skills to treat the growing population of crack misusers and poly-drug misusers . This will form part of the NTA 's wider strategy to improve the skills-base of drug workers through the development of standards and expansion of training . . Crack cocaine misuse is often accompanied by alcohol misuse and , increasingly , drug treatment services are having to respond to individuals misusing both heroin and cocaine . The interaction between different substances and their impact on users demands new approaches to treatment and the management of clients . The NTA is currently assessing the most effective forms of treatment and will publish the findings this summer . The Agency will then pilot new treatment models for crack cocaine later this year . Also this summer , the NTA will launch the equivalent of a national service framework for drug treatment services , setting out how services should be co-ordinated to obtain maximum benefit . For further details contact : Iris Steen , Communications Manager , NTA 020 7261 8620 email : iris . s teen@nta-nhs . o rg . u k www . n ta . n hs . u k Notes to editors The National Treatment Agency ( NTA ) was created by the Government with a remit to increase the capacity , quality and effectiveness of drug treatment in England . Alternative arrangements are in place for Wales and Scotland . There is evidence of an increase in demand for treatment for crack misuse : 4 % of those seeking treatment in 1998 identified crack cocaine or cocaine as their main drug . This increased to 7 % in 2000 . 18 % of those seeking treatment in 1998 identified crack cocaine or cocaine as a secondary drug . This increased to 24 % in 2000 . There are strong regional varieties in crack cocaine/cocaine as the main drug : Trent - 2 % London - 21 % Eastern region - 6 % . Crack misusers are less likely than other drug misusers to seek treatment . This is partly because drug treatment services have traditionally developed to treat opiate misusers . There is therefore a limited awareness of the effectiveness and availability of crack treatment services , and a lesser skill-base within the treatment workforce . In addition , black and minority ethnic misusers are also less likely to seek treatment . The combination implies that black crack misusers are disadvantaged in the current drug treatment system . Effective treatment 56 % of those using crack at the start of treatment in 1998 , were not using it four years afterwards Most effective forms of treatment : Psycho-social interventions including structured counselling that is action focused , emphasising ability to manage and control situation Effective treatments : Address the immediate crisis and plan for the long-term Offer a portfolio of different forms of treatment Have low waiting times - crack misusers will not wait for treatment and are difficult to manage on a waiting list . The NTA has established targets for waiting times , provided guidance on management and is providing support to service providers via the NHS Modernisation Agency to minimise waiting times Deal with relapse prevention and the triggers that lead to relapse Have open , flexible client/counsellor relationship is crucial . Counsellor needs to : Be empathetic towards clients ' situation Understand the chemical effects of crack ( including immediate effects leading to excited state , and longer term effects such as paranoia and depression ) . Needs to explain this to the client Be non-judgemental Understand the social background and related needs of individual clients Anti-depressants can support treatment for those with pre-existing depression that is not induced by drug misuse Community-based treatment is as effective as residential treatment for less chaotic users . Residential treatment appears to be more effective for those with complex , chaotic drug misuse Problems associated with crack cocaine misuse Distorts the brain chemistry and affects rational thinking and decision making abilities for months after usage . Drug treatment workers need to take this into consideration when planning treatment and assessing patient . Produces a state of excited delirium - extreme highs and lows . This can present itself as aggression . Induces depression , anxiety , paranoia Can lead to weight loss , chest problems if smoking crack , liver problems Many of those dependent on crack cannot sustain misuse on a legitimate income , its use is therefore associated with acquisitive crime . Crack can lead to anxiety and paranoia , giving rise to offences involving violence . You can not overdose on crack cocaine in the same way that you can on heroin , therefore a user can spend a lot of money on one binge which can last for days . If crack misuse is combined with alcohol a third addictive substance is created ( cocathalene ) , leading to an additional addiction . Polydrug misuse is emerging as a new problem particularly as traditional heroin misusers are also starting to misuse crack . 