In mobile ad-hoc networks nodes need to cooperate to communicate, but there are many reasons for non-cooperation. Saving power or preventing other nodes from obstructing a service are merely selfish reasons for non-cooperation, whereas nodes may also actively and maliciously deny service or divert traffic for all sorts of attacks. However, without an infrastructure to rely on, nodes depend on each other`s cooperation. In game-theoretic terms, this is a dilemma. The dominating strategy for individual nodes is not to cooperate, as cooperation consumes resources and it might result in a disadvantage. But if every node follows that strategy, the outcome is undesirable for everyone as it results in a non functional or entirely absent network. Our goals are to increase cooperation by proactively giving selfish nodes an incentive to cooperate, as well as reactively isolate selfish or malicious nodes such that they cannot continue their misbehavior. To make cooperation in mobile ad-hoc networks attractive we have to make sure that selfish behavior, i.e., a behavior that maximizes the utility of a node, leads to an outcome that is also beneficial for the network.