Despite the weakened text, parliament&#x2019 s vote was still welcomed by anti tobacco campaigners as an important contribution to saving lives.

&#x201C Today marks a genuine turning point for European tobacco control &#x2013 and a huge stride towards a tobacco free Europe,&#x201D said Archie Turnbull, president of the Brussels based Smoke Free Partnership.

The commission, for its part, had wanted an immediate ban on menthol cigarettes and slims, even larger warning labels, and to bolige people to get a doctor&#x2019 s note to buy e cigarettes.

The draft bill instead phases out menthols by 2020, reduces the warning labels on packs, and allows e cigarettes to be sold without a prescription.

MEPs opted for the four year delay on menthols because they are &#x201C consumed more by older smokers and less by younger people,&#x201D said an EU source close to the issue.

Others who called for an immediate ban argue menthols appeal to young people because chemicals suppress the cough reflex.

Poland, one of Europe&#x2019 s largest tobacco producers, does not want the restrictions.

Philip Morris International (PMI) and British American Tobacco, among others, dominate Poland&#x2019 s tobacco industry. The country is one of the major producers of menthols sold in the EU.

A EU official said Warsaw is likely to reject the bill in mid March when it comes up for a qualified majority vote among member states. But it means Poland&#x2019 s lone vote will not be enough to stop it.

&#x201C There is no reason to believe why apart from Poland there would be sufficient other member states to block this,&#x201D said the source.

Polish centre right MEP Roza Grafin von Thun und Hohenstein backed the phase out on menthols, but her office told this website that Poles object to the EU telling them what they can and cannot smoke. An estimated one third of the population smoke.

The rules

The bill requires mandatory picture and text health warnings covering 65 percent of the front and the back of cigarette packs. Packs with fewer than 20 cigarettes cannot be sold.

Cigarettes and roll your own tobacco won&#x2019 t be allowed to taste like chocolate and other similar flavors but exceptions are made for pipe tobacco, cigars, cigarillos and smokeless products.

Rules for the electronic cigarettes are more relaxed in what is seen as a triumph for the industry by some MEPs.

&#x201C They won a huge victory,&#x201D Swedish Green MEP Carl Schlyter, a vice chair on the EU parliament’s health committee, told this website.

&#x201C All member states wanted them to be approved in the pharma logic because the purpose of e cigarettes is to help people to stop smoking or have yet another alternative to stop smoking,&#x201D he added.

The parliament instead buckled under industry pressure to make them a consumer product, he said.

The final compromise allows companies to sell electronic cigarettes as normal products without any medical oversight, unless they specifically advertise them as a way to stop smoking.

EU commissioner for health Tonio Borg welcomed the new safety and quality control rules on the devices, which he says will protect consumers from harm.

Can someone tell me what the difference between american cigarettes and european cigarettes?

Electronic cigarettes: a safe way to light up? – mayo clinic
‘) (ai) (“click”,function(aE) (0,0) ) else (“fixed”) (“top”,0) (“left”,”auto”) var ai (“#go to top”) if(ai! null) (true) var Z null var ar 0 var M (“#ya cbnr”) var J (“.fc wrap”) var D (“#ya membercard”) if(M) Z M else if(J) Z J else if(D) Z D if(Z) ar parseFloat( (“height”)) parseFloat( (“marginBottom”)) parseFloat( (“marginTop”)) var n (“# #nav menu”) if(Z! null&&n! null) var t parseFloat( (“paddingRight”)) parseFloat( (“paddingLeft”)) var E (“.ya tabs .sort filter”) var ag ar aw aq x K aD if(!r) K G ag j var V parseFloat( (“marginBottom”)) if(ao>b&&ah 0) if(A>ag) if(! (“tab dock”)) (“tab dock”) (“width”,parseFloat( (“.dynamic”).getStyle(“width”)) t) (“top”,K ak) if(E) (“marginTop”, (“height”)) else if( (“tab dock”)) (“tab dock”) (“width”,”auto”) (“top”,0) if(E) (“marginTop”,”auto”) else (“tab dock”) (“width”,”auto”) (“top”,0) if(E) (“marginTop”,”auto”) if( ) var az (“.shown .first child”) var p (“item”) () 1 if(p&& > 10&& ) (“mb82”) var u (“#ya m “) var L (“#ya answer”) var z (“#ya oa”) var aj false var m (“#dockable answer box”) var N I A if(m) var H parseFloat( (“width”)) var v H 25 (“width”,H) (“mt10”) if(L) (“width”,v) if(L) var l (“offsetTop”) (“offsetHeight”) aq G ac var ab (“offsetHeight”) if(ab>0&&h 0) yar updatePParam(“aboxpos”,ab) h 1 if(aj false&&(N)>(l)) aj true if(m) (“dockedAnswerBox”) setTimeout(function() if(e 0&&(N)>(l)) e 1 (“view”, itc 1 ,”ansview”) ,500) () var i null (“body”).get(“winWidth”)b (“domready”, , ,this,i) (“scroll”, , ,this,i) (“windowresize”, , ,this,i) () ,”0.1″, requires “overlay” ) (“ya io”,function(a) (“Answers”).IO function() var b new Date(),c ” txnid ” () “&crumb ” (e,h,f,g) if(h “GET”) if( (“?”) 1) e “?” c else e “&” c else f (f! “”)?”&” c c var d method h,data f,timeout 10000,on success function(i,j) (“Succesfull IO request ” j) (“Params ” f) g(j) ,failure function(i,j) (“IO request Failed ” j ” nURL ” e ” nParams ” f) g( status ,responseText null ) (e,d) ,”0.1″, requires “base”,”node”,”io base”,”json”,”querystring stringify simple” ) (“ya suspend”,function(a) (” “) (b) () redirect “/activity” () var e “#tup, #tdn, #raaf, #racf, #rarf” if( (“#ya oa”)) (“#ya oa”).delegate(“click”, ,e) if( (“#ya ba”)) (“#ya ba”).delegate(“click”, ,e) if( (“#yan question”)) (“#yan question”).delegate(“click”, ,”#tup, #tdn”) if( (” “)) (” “).on(“focus”, ) if( (“.li cmnts”)) (“.li cmnts”).on(“click”, ) var f Array(“#qact”,”#cba”,”#mbrFollow”,”#mbrUnFollow”,”#mbrBlock”,”#mbrUnBlock”,”#vote”,”#vba”,”#wstar”,”#signin”,”#raqf”,”#qans”,”#eml”,”#nba”,”#wlist”),d for(var c 0 c23) (“fadeout”) else (“fadeout”) (“selected”) (“unselected”) (“fwb”) (“fwl”) function t(H) if( (“title”)) var I (“title”).replace(/&/g,”&”) ( (0,21)) if( >21) (“fadeout”) else (“fadeout”) (“unselected”) (“selected”) (“fwl”) (“fwb”) function y(I,H) if(! (“show none”)) (“show block”) (“show inbl”) (“show none”) (“show none”) function s() y(v,A) y(h,o) y(G,b) function p(J,I) if(! (“show block”)) (“show none”) (“show none”) (“show block”) (“show inbl”) (“top”,””) var K (“region”),H (“viewportRegion”).bottom if( >H) ( (H, (“region”).bottom) ) function F(L,I,J) a false function H() if(!a) y(J,I) a false YUI().later(500,window,H) function K() if(! (“show none”)) a true (“mouseover”,K) highlightNode function(I) var M (“#” I ” a”) var O (“.selected”) if(!M) if( (“cat “) 1) s() if(O) z(O) return var N (O? (“parentNode”) null) var J (N? (“parentNode”) null) if(J&&( (“ul major”) (“ul flyout1”) (“ul flyout2”))) return else M (“#cat 0 a”) if( (“selected”)) s() return if(O) z(O) var H (“parentNode”) var K (“display”) var L (“.flyout selected”) if( (“parentNode”).hasClass(“ul major”)) if((K! “none”)&&! (“cat major extra”)) l(D) l(m) l(k) d(e) d(u) d(L) (“flyout selected”) else if(( (“parentNode”).hasClass(“ul flyout1”)) ( (“parentNode”).hasClass(“ul flyout2”))) if(L) d(L) (“flyout selected”) if( (“cat flyout extra1”)) l(H) l(D) l(k) d(u) d(e) t(C) else if( (“cat flyout extra2”)) l(H) (“flyout selected”) else (“flyout selected”) l(H) l(e) (“href”, (“href”)) ( (“title”)) d(m) if( (“parentNode”).hasClass(“ul flyout1”)) if(! (“flyout selected”)) d(u) l(k) if( (“parentNode”).hasClass(“ul flyout2”)) l(u) (“href”, (“href”)) ( ()) d(k) (“href”, (“href”)) (“title”, ().replace(/&/g,”&”)) d(D) t(q) s() return if( (“parentNode”).hasClass(“ul abt”)) t(n) else t(M) s() (“click”,function(H) y(h,o) y(G,b) p(v,A) ) (“click”,function(H) y(v,A) y(G,b) p(h,o) ) (“click”,function(H) y(v,A) y(h,o) p(G,b) ) (“mouseleave”,function(H) F(j,b,G) ) (“mouseleave”,function(H) F(r,o,h) ) (“mouseleave”,function(H) F(f,A,v) ) () () ,”0.1″, requires “node”,”event” ) (“ya autosuggest”,function(c) var b var a 10 var d function(e,f) (“Gossip being initialized”) var g new ( source b ) if((f)&&(typeof f “number”)) a f (“Max num results set to ” a) var h (“#” e) if(h) ( , maxResults a,resultHighlighter “wordMatch”,resultTextLocator “k”,source g,requestTemplate “&command query “,on select function(l) if( ) var k if(k) var i /qid a zA Z0 9 / var j (k) if(j 0 ) var m j 0 .split(” “) 1 if(m) “//” “/question/index?qid ” m ,resultListLocator function(j) var l j 0 &&j 0 .r if(l&&! (l)) l l for(var k 0 k< /g decodeTextResult (/"/g,'"').replace(/&#39 /g,"'").replace(/&/g,"&") n (m,"") l k .k n return l ) ("Answers").autoSuggest function() return setUpSearchAssist function(e,f) d(e,f) ,"0.1", requires "base","node","autocomplete","autocomplete highlighters","datasource get" ) ("ya askbar",function(f) var g new () var c 5 var a function(h) (function() ("/ ","GET","",function(j) if( ) var i ("#" h) if(i) ("innerHTML", ) e() d() yar refresh("renderAskBar") ) )() var e function() var i ("#message1") var h ("#message2") if(i&&h) var j new ( node i,duration c,to opacity 0 ) () setTimeout(function() ("display","none") ("display","block") ,(c 1000)) var b function() ("Mimic Placeholder attr") var i ("#ask text") if(i) var h ("placeholder") ("value",h) ("focus",function(k) var j ("value") if(j h) ("value","") ) ("blur",function(k) var j ("value") if(j "") ("value",h) ) var d function() ().setUpSearchAssist("ask text",5) ("Gossip initialized for Ask Bar") ("Answers").createAskBar function() if( ("#ask button")) ("#askbar holder").delegate("click",function(h) ("askquestion","submit",1) ("#qask form").submit() ,"#ask button") if(arguments 0 ) c arguments 0 return render function(h) a(h) ,setUpGossip function() d() ,"0.1", requires "base","node","ya io","anim","autocomplete","autocomplete highlighters","datasource get","ya autosuggest" ) ("ya MCRD",function(d) (" ") var c,b var a new Array() (e) var f (j) if( ) (".mcrd error").removeClass("none") (".mcrd error").setStyles( width 271,height 108 ) (".mcrd bd").addClass("none") (".mcrd ft").addClass("none") ("#mcrd err msg").set("innerHTML", ) else (".mcrd error").addClass("none") (".mcrd error").setStyles( width 0,height 0 ) ("#mcrd err msg").set("innerHTML","") (".mcrd bd").removeClass("none") ("#mcrd").one("div").set("id", ) ("#mbrBA").set("innerHTML", ) ("#mbrNN").set("innerHTML", (0,19)) ("#mbrSNC").set("innerHTML", ) ("#mbrPNTS").set("innerHTML", ) ("#mbrLVL").set("innerHTML", ) ("#mbrTA").set("innerHTML", ) ("#mbrPNTW").set("innerHTML", ) var i (".mcrd topc"),h "img sprite badge " ("none") ("badge c") ("badge p") ("badge o") ("badge s") if( >0) var g (“#mbrNN”).get(“offsetWidth”) (“#mbrNN”).ancestor().set(“offsetWidth”,g 26) (“none”) if( ) (h “c”) if( ) (h “p”) if( ) (h “s”) if( ) (h “o”) if( ) (“#mbrFollow”).setStyle(“display”, ) (“#mbrUnFollow”).setStyle(“display”, ) (“#mbrBlock”).setStyle(“display”, ) (“#mbrUnBlock”).setStyle(“display”, ) (“.mcrd ft”).setStyle(“display”, ?”block” “none”) (“loading”) (h) id (“parentNode”).get(“parentNode”).one(“.mcrd bd”).get(“id”) (“Guid” id) mcrd ft (“parentNode”).get(“parentNode”).one(“.mcrd ft”) var g “/ ” id var i new () (g “&op r&t g”,”GET”,””,function(j) if(( ) ( )) (“#mbrFollow”).setStyle(“display”,”inline”) (“#mbrUnFollow”).setStyle(“display”,”none”) (“#mbrBlock”).setStyle(“display”,”inline”) (“#mbrUnBlock”).setStyle(“display”,”none”) a “user ” id .add “inline” a “user ” id .remove “none” a “user ” id .block “inline” a “user ” id .unblock “none” ) (h) id (“parentNode”).get(“parentNode”).one(“.mcrd bd”).get(“id”) (“Guid” id) mcrd ft (“parentNode”).get(“parentNode”).one(“.mcrd ft”) var g “/ ” id var i new () (g “&op a&t g”,”GET”,””,function(j) if(( ) ( )) (“#mbrFollow”).setStyle(“display”,”none”) (“#mbrUnFollow”).setStyle(“display”,”none”) (“#mbrBlock”).setStyle(“display”,”none”) (“#mbrUnBlock”).setStyle(“display”,”inline”) a “user ” id .add “none” a “user ” id .remove “none” a “user ” id .block “none” a “user ” id .unblock “inline” ) (h) id (“parentNode”).get(“parentNode”).one(“.mcrd bd”).get(“id”) (“Guid” id) mcrd ft (“parentNode”).get(“parentNode”).one(“.mcrd ft”) var g “/ ” id var i new () (g “&op r&t g”,”GET”,””,function(j) if(( ) ( )) (“#mbrFollow”).setStyle(“display”,”inline”) (“#mbrUnFollow”).setStyle(“display”,”none”) (“#mbrBlock”).setStyle(“display”,”inline”) (“#mbrUnBlock”).setStyle(“display”,”none”) a “user ” id .add “inline” a “user ” id .remove “none” a “user ” id .block “inline” a “user ” id .unblock “none” ) (h) id (“parentNode”).get(“parentNode”).one(“.mcrd bd”).get(“id”) (“Guid” id) mcrd ft (“parentNode”).get(“parentNode”).one(“.mcrd ft”) var g “/ ” id var i new () (g “&op a&t g”,”GET”,””,function(j) if(( ) ( )) (“#mbrFollow”).setStyle(“display”,”none”) (“#mbrUnFollow”).setStyle(“display”,”inline”) (“#mbrBlock”).setStyle(“display”,”none”) (“#mbrUnBlock”).setStyle(“display”,”none”) a “user ” id .add “none” a “user ” id .remove “inline” a “user ” id .block “none” a “user ” id .unblock “none” ) (k) (“loading”) ( , , ) () (true) () var i this,g new Date() var h (“id”) var j a “user ” h if(j) (j) f else f (“/ “, method “get”,data “u ” h “&l ” “& txnid ” (),arguments userid h ,on success function(o,n,l) if( ! 200) (“Member Card information for” ” could not be loaded.”) else var m ( ) a “user ” m if( ) (m) ) () (50,d,function() () ) () if( ) () () c (“#mcrd”).removeClass(“none”) b new ( id “mcrd wrap”,srcNode c,render true,visible false,plugins fn ,cfg duration 0.35 ) var g ( ) (“mouseenter”, ,”.profile”,this) (“mouseleave”, ,”.profile”,this) (“mouseleave”, ,this) (“mouseenter”, ,this) (“click”, ,”#mbrFollow”,this) (“click”, ,”#mbrUnFollow”,this) (“click”, ,”#mbrBlock”,this) (“click”, ,”#mbrUnBlock”,this) () ,”0.1″, requires “base”,”node”,”event”,”overlay”,”widget anim”,”widget position align”,”io”,”json” ) YUI().use(“node”,function(f) var c (“.feedback”) if(c! null) var b (” “) var d (” “) var g (“.warn”) var e (“.voice”) var a (“.bug”) var d (” “) if(b! null) (“click”,function(h) (“display”,”none”) (“display”,”none”) (“display”,”none”) (“display”,”none”) (“display”,”block”) ) if(d! null) (“click”,function(h) (“display”,”block”) (“display”,”block”) (“display”,”block”) (“display”,”block”) (“display”,”none”) ) ) YUI().use(“ya autosuggest”,function(a) ().setUpSearchAssist(“mnp search box”) (“Gossip initialized for UH”) ) (“ya feedback”,function(a) (“Answers”).Feedback function(c) var f WARN “feedback cont”,INFO “feedback cont”,ERROR “feedback error” var g 3000 var b var d var e () if(b null f d undefined e “”) (“Feedback cannot be rendered Parameters missing”) return if( (“.ya feedback”)) return var h (‘