Mobile Ad hoc Networks (MANETs) rely on the cooperation of nodes for packet routing and forwarding. Much of the existing work in MANETs assume that mobile nodes (possibly owned by selfish users) will follow prescribed protocols without deviation. However, a user may misbehave due to several advantages resulting from noncooperation, the most obvious being power saving. As such, the network availability is severely endangered. Hence, enforcing the cooperation among nodes becomes a very important issue. Several different approaches have been developed to detect non-cooperative nodes or deal with the non-cooperative behavior of mobile nodes in MANETs. These protocols are first surveyed in details in this paper. It is found that the proposed approaches have several concerns that prevent them from really enforcing the node cooperation in MANETs. Thus, a new scheme that can stimulate and also enforce nodes to cooperate in a selfish ad hoc environment is presented. We also present a mechanism to detect and exclude potential threats of selfish mobile nodes. The simulation results indicate that by using the proposed scheme, MANETs can be robust against nodes' misbehaving and the performance of the network is enhanced many folds when compared to other existing schemes.