diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
index 5f6bc5d..bfbb479 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/ObjectiveTracker.java
@@ -76,6 +76,7 @@
 import static org.onlab.util.Tools.isNullOrEmpty;
 import static org.onosproject.net.LinkKey.linkKey;
 import static org.onosproject.net.intent.IntentState.INSTALLED;
+import static org.onosproject.net.intent.IntentState.INSTALLING;
 import static org.onosproject.net.link.LinkEvent.Type.LINK_REMOVED;
 import static org.onosproject.net.link.LinkEvent.Type.LINK_UPDATED;
 import static org.slf4j.LoggerFactory.getLogger;
@@ -212,13 +213,15 @@
         Key key = intentData.key();
         Intent intent = intentData.intent();
         boolean isLocal = intentService.isLocal(key);
+        boolean isInstalled = intentData.state() == INSTALLING ||
+                              intentData.state() == INSTALLED;
         List<Intent> installables = intentData.installables();
 
         if (log.isTraceEnabled()) {
             log.trace("intent {}, old: {}, new: {}, installableCount: {}, resourceCount: {}",
                       key,
                       intentsByDevice.values().contains(key),
-                      isLocal,
+                      isLocal && isInstalled,
                       installables.size(),
                       intent.resources().size() +
                           installables.stream()
@@ -229,7 +232,9 @@
             log.warn("Intent {} is INSTALLED with no installables", key);
         }
 
-        if (isLocal) {
+        // FIXME Intents will be added 3 times (once directly using addTracked,
+        //       then when installing and when installed)
+        if (isLocal && isInstalled) {
             addTrackedResources(key, intent.resources());
             for (Intent installable : installables) {
                 addTrackedResources(key, installable.resources());
