In this paper, we introduce a new class of set-valued mappings in a non-convex setting called D-KKM mappings and prove a general D-KKM theorem. This extends and improves the KKM theorem for several families of set-valued mappings, such as (X, Y), C(X, Y), C (X, Y), C (X, Y) and C (X, Y). In the sequel, we apply our theorem to get some existence results for maximal elements, generalised variational inequalities, and price equilibria.