diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
index 7d6edcb..330af04 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
@@ -117,18 +117,16 @@
             }
 
             return ImmutableList.of(new FlowRuleIntent(appId, null, rules, intent.resources()));
-
-        } else {
-            if (EncapsulationType.VLAN == enacpConstraint.get().encapType()) {
-                rules = manageVlanEncap(intent);
-            }
-            if (EncapsulationType.MPLS == enacpConstraint.get().encapType()) {
-                //TODO: to be implemented
-                rules = Collections.emptyList();
-            }
-
-            return ImmutableList.of(new FlowRuleIntent(appId, null, rules, intent.resources()));
         }
+
+        if (EncapsulationType.VLAN == enacpConstraint.get().encapType()) {
+            rules = manageVlanEncap(intent);
+        } else if (EncapsulationType.MPLS == enacpConstraint.get().encapType()) {
+            //TODO: to be implemented
+            rules = Collections.emptyList();
+        }
+
+        return ImmutableList.of(new FlowRuleIntent(appId, null, rules, intent.resources()));
     }
 
     private FlowRule createFlowRule(TrafficSelector originalSelector, TrafficTreatment originalTreatment,
