An important limitation of Logic Programming (LP) as a Knowledge Representation (KR) formalism is the handling of contradictory programs. Research in LP has striven to capture nonmonotonic features, seeking to develop a more powerful tool for KR and common sense reasoning. This talk will describe a formalism which is an extension of current work on LP.We start from Extended Logic Programming and develop a formalism which provides the possibility of adding information, in the form of weak rules, in a declarative manner. These weak rules are the key element for introducing defeasibility. In Defeasible Logic Programming (DLP), an argumentation formalism is used for deciding between contradictory goals through a dialectical analysis. A query q will succeed when there is an argument Arg for q that is a justification for q. Building a justification involves looking for counterarguments that could be defeaters for Arg. Since defeaters are arguments, there may exist defeaters for the defeaters, and so on, thus requiring the above mentioned dialectical analysis. Problems of circular argumentation will be considered, and solutions will be proposed.