Ubiquitous Computing Environments feature massively distributed systems containing a large number of devices, services and applications that help end-users perform various kinds of tasks. One way by which administrators and end-users can manage these environments is through the use of policies. In particular, obligation policies are used to specify what actions must or must not be performed by the environment on the occurrence of certain events. Obligation policies are often specified as EventCondition-Action (ECA) rules. However an important problem in ubiquitous computing systems is that different users and administrators may have conflicting policies for managing the system. Hence, a key challenge in policy-based management is detecting and resolving conflicts between multiple policy rules that get activated by a single event. Existing approaches are limited in power and scope mainly because they do not have semantic information about the effects of policy actions; hence, they cannot infer that two actions may conflict unless they are explicitly stated to be conflicting. In this paper, we propose an extended model of ECA called Event-Condition-Action-Post-Condition (ECA-P), where developers and administrators can annotate actions with their effects. The ECA-P model allows inferring that actions may conflict based on conflicting post-conditions. Detected conflicts are resolved using meta-rules that specify preferred system states. The ECA-P framework also detects failures in policy execution by using postconditions to verify successful completion of policy actions. We present the details of the framework.