I realise this could be "very subjective", but I have asked different people from many work places who are used to different languages and ideologies what a code smell is, and noone can agree what a code smell is. It would be good to get a definition that most people can agree on.
For example, what one developer calls a code smell, another developer calls a "super feature" of their language/framework.
And yes, I have seen:
http://stackoverflow.com/questions/114342/what-are-code-smells-what-is-the-best-way-to-correct-them
The code smells defined by wikipedia have many cases where they are not applicable:
Duplicate code: identical or very similar code exists in more than one location - sometimes this is a good thing, as you may have processes which are known will diverge slightly. Or for readabilities sake it is often better. Or when you first duplicate code you may cut and paste it as you don't know if you want to keep the second copy yet
Large method: a method, function, or procedure that has grown too large. Sometimes large methods are perfect for tasks and very readable
Large class: a class that has grown too large, see God object. Sometimes classes have alot of responsibility and become large. Why is this bad?
Feature envy: a class that uses methods of another class excessively. I use String classes alot in Java. Does this make String of StringBuffer bad?
Inappropriate intimacy: a class that has dependencies on implementation details of another class. Examples anyone, maybe this one is good
Refused bequest: a class that overrides a method of a base class in such a way that the contract of the base class is not honored by derived class. See Liskov substitution principle. Fair enough
Lazy class: a class that does too little. What, first too much code, now we get penalised for writing too little!
Duplicated method: a method, function, or procedure that is very similar to another. Sometimes things do slightly different things
Contrived Complexity: forced usage of overly complicated design patterns where simpler design would suffice. Depends who judges what is complex. Sounds like architecture astronauts looking at a system and saying it is too complicated as they don't understand the business domain or the application. But still, can be true too!