The adaptive software paradigm supports the definition of software systems that are continuously adapted at run-time. An adaptation activates multiple features in the system, according to the current execution context (e.g., CPU consumption, available bandwidth). However, the underlying approaches used to implement adaptation are ordered, e.g. the order in which a set of features are turned on or off matters. Assuming feature definition as etched in stone, the identification of the right sequence is a difficult and time–consuming problem. We propose here a composition operator that intrinsically supports the commutativity of adaptations. Using this operator, one can minimize the number of ordered compositions in a system. It relies on an action–based approach, as this representation can support preexisting composition operators as well as our contribution in an uniform way. This approach is validated on the Service–Oriented Architecture domain, and is implemented using first–order logic.