diff --git a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
index 9a80528f336ffc7a5f9cf5289d94a8e7933c098d..cd3638a662a6464ce2cbf01b3bdaccee176da23b 100644
--- a/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
+++ b/src/main/scala/leon/frontends/scalac/CodeExtraction.scala
@@ -184,7 +184,7 @@ trait CodeExtraction extends ASTExtractors {
     }
 
     def isIgnored(s: Symbol) = {
-      (annotationsOf(s) contains "ignore") || s.isImplicit || s.fullName.toString.endsWith(".main")
+      (annotationsOf(s) contains "ignore") || s.fullName.toString.endsWith(".main")
     }
 
     def isExtern(s: Symbol) = {
@@ -867,7 +867,7 @@ trait CodeExtraction extends ASTExtractors {
         case ExFieldDef(_,_,_) =>
         case ExLazyFieldDef() => 
         case ExFieldAccessorFunction() => 
-        case d if isIgnored(d.symbol) =>
+        case d if isIgnored(d.symbol) || (d.symbol.isImplicit && d.symbol.isSynthetic) =>
         case tree =>
           outOfSubsetError(tree, "Don't know what to do with this. Not purescala?");
       }
@@ -1759,8 +1759,7 @@ trait CodeExtraction extends ASTExtractors {
 
         // default behaviour is to complain :)
         case _ =>
-          println(tr.getClass)
-          outOfSubsetError(tr, "Could not extract as PureScala")
+          outOfSubsetError(tr, "Could not extract as PureScala (Scala tree of type "+tr.getClass+")")
       }
 
       res.setPos(current.pos)