diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index 71c017d..d48a089 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -88,6 +88,7 @@
 import static org.onosproject.net.host.HostEvent.Type.HOST_ADDED;
 import static org.onosproject.net.link.LinkEvent.Type.LINK_ADDED;
 import static org.onosproject.ui.JsonUtils.envelope;
+import static org.onosproject.ui.JsonUtils.string;
 import static org.onosproject.ui.topo.TopoJson.highlightsMessage;
 import static org.onosproject.ui.topo.TopoJson.json;
 
@@ -100,6 +101,7 @@
     private static final String REQ_DETAILS = "requestDetails";
     private static final String UPDATE_META = "updateMeta";
     private static final String ADD_HOST_INTENT = "addHostIntent";
+    private static final String REMOVE_INTENT = "removeIntent";
     private static final String ADD_MULTI_SRC_INTENT = "addMultiSourceIntent";
     private static final String REQ_RELATED_INTENTS = "requestRelatedIntents";
     private static final String REQ_NEXT_INTENT = "requestNextRelatedIntent";
@@ -220,6 +222,7 @@
                 // TODO: migrate traffic related to separate app
                 new AddHostIntent(),
                 new AddMultiSourceIntent(),
+                new RemoveIntent(),
 
                 new ReqAllFlowTraffic(),
                 new ReqAllPortTraffic(),
@@ -426,6 +429,37 @@
         }
     }
 
+    private Intent findIntentByPayload(ObjectNode payload) {
+        int appId = Integer.parseInt(string(payload, APP_ID));
+        String appName = string(payload, APP_NAME);
+        ApplicationId applicId = new DefaultApplicationId(appId, appName);
+        long intentKey = Long.decode(string(payload, KEY));
+
+        Key key = Key.of(intentKey, applicId);
+        log.debug("Attempting to select intent by key={}", key);
+
+        Intent intent = intentService.getIntent(key);
+
+        return intent;
+    }
+
+    private final class RemoveIntent extends RequestHandler {
+        private RemoveIntent() {
+            super(REMOVE_INTENT);
+        }
+
+        @Override
+        public void process(long sid, ObjectNode payload) {
+            Intent intent = findIntentByPayload(payload);
+            if (intent == null) {
+                log.warn("Unable to find intent from payload {}", payload);
+            } else {
+                log.debug("Removing intent {}", intent.key());
+                intentService.withdraw(intent);
+            }
+        }
+    }
+
     private final class AddMultiSourceIntent extends RequestHandler {
         private AddMultiSourceIntent() {
             super(ADD_MULTI_SRC_INTENT);
@@ -551,19 +585,11 @@
 
         @Override
         public void process(long sid, ObjectNode payload) {
-            int appId = Integer.parseInt(string(payload, APP_ID));
-            String appName = string(payload, APP_NAME);
-            ApplicationId applicId = new DefaultApplicationId(appId, appName);
-            long intentKey = Long.decode(string(payload, KEY));
-
-            Key key = Key.of(intentKey, applicId);
-            log.debug("Attempting to select intent key={}", key);
-
-            Intent intent = intentService.getIntent(key);
+            Intent intent = findIntentByPayload(payload);
             if (intent == null) {
-                log.debug("no such intent found!");
+                log.warn("Unable to find intent from payload {}", payload);
             } else {
-                log.debug("starting to monitor intent {}", key);
+                log.debug("starting to monitor intent {}", intent.key());
                 traffic.monitor(intent);
             }
         }
diff --git a/web/gui/src/main/webapp/app/view/intent/intent.css b/web/gui/src/main/webapp/app/view/intent/intent.css
index 501e5b7..72a52f6 100644
--- a/web/gui/src/main/webapp/app/view/intent/intent.css
+++ b/web/gui/src/main/webapp/app/view/intent/intent.css
@@ -23,7 +23,7 @@
 }
 
 #ov-intent div.ctrl-btns {
-    width: 110px;
+    width: 150px;
 }
 
 
diff --git a/web/gui/src/main/webapp/app/view/intent/intent.html b/web/gui/src/main/webapp/app/view/intent/intent.html
index 85ccf04..309174a 100644
--- a/web/gui/src/main/webapp/app/view/intent/intent.html
+++ b/web/gui/src/main/webapp/app/view/intent/intent.html
@@ -11,9 +11,16 @@
             <div class="separator"></div>
 
             <div ng-class="{active: !!selId}"
-                    icon icon-id="topo" icon-size="42"
-                    tooltip tt-msg="topoTip"
-                    ng-click="showIntent()"></div>
+                 icon icon-id="topo" icon-size="42"
+                 tooltip tt-msg="topoTip"
+                 ng-click="showIntent()"></div>
+
+            <div ng-class="{'active': !!selId}"
+                 icon icon-id="stop" icon-size="42"
+                 tooltip tt-msg="deactivateTip"
+                 ng-click="deactivateIntent()"></div>
+
+
         </div>
     </div>
 
diff --git a/web/gui/src/main/webapp/app/view/intent/intent.js b/web/gui/src/main/webapp/app/view/intent/intent.js
index b6698f8..3571228 100644
--- a/web/gui/src/main/webapp/app/view/intent/intent.js
+++ b/web/gui/src/main/webapp/app/view/intent/intent.js
@@ -21,11 +21,17 @@
 (function () {
     'use strict';
 
+    var dialogId = 'remove-intent-dialog',
+        dialogOpts = {
+            edge: 'right'
+        };
+
     angular.module('ovIntent', [])
         .controller('OvIntentCtrl',
         ['$log', '$scope', 'TableBuilderService', 'NavService',
+            'TopoTrafficService', 'DialogService',
 
-        function ($log, $scope, tbs, ns) {
+        function ($log, $scope, tbs, ns, tts, ds) {
 
             function selCb($event, row) {
                 $log.debug('Got a click on:', row);
@@ -34,9 +40,9 @@
                     name = m ? m[2] : null;
 
                 $scope.intentData = ($scope.selId && m) ? {
-                    intentAppId: id,
-                    intentAppName: name,
-                    intentKey: row.key
+                    appId: id,
+                    appName: name,
+                    key: row.key
                 } : null;
             }
 
@@ -48,12 +54,42 @@
             });
 
             $scope.topoTip = 'Show selected intent on topology view';
+            $scope.deactivateTip = 'Remove selected intent';
 
             $scope.showIntent = function () {
                 var d = $scope.intentData;
                 d && ns.navTo('topo', d);
             };
 
-            $log.log('OvIntentCtrl has been created');
+            $scope.deactivateIntent = function () {
+                var content = ds.createDiv();
+
+                content.append('p')
+                    .text('Are you sure you want to remove the selected intent?');
+
+                function dOk() {
+                    var d = $scope.intentData;
+                    d && tts.removeIntent(d);
+                }
+
+                function dCancel() {
+                    ds.closeDialog();
+                    $log.debug('Canceling remove-intent action');
+                }
+
+                ds.openDialog(dialogId, dialogOpts)
+                    .setTitle('Confirm Action')
+                    .addContent(content)
+                    .addOk(dOk)
+                    .addCancel(dCancel)
+                    .bindKeys();
+            };
+
+            $scope.$on('$destroy', function () {
+                ds.closeDialog();
+                $log.debug('OvIntentCtrl has been destroyed');
+            });
+
+            $log.debug('OvIntentCtrl has been created');
         }]);
 }());
diff --git a/web/gui/src/main/webapp/app/view/topo/topo.js b/web/gui/src/main/webapp/app/view/topo/topo.js
index 33353b0..fa3e1db 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -585,11 +585,11 @@
                 setMap: setMap
             });
 
-            if (params.intentKey && params.intentAppId && params.intentAppName) {
+            if (params.key && params.appId && params.appName) {
                 $scope.intentData = {
-                    key: params.intentKey,
-                    appId: params.intentAppId,
-                    appName: params.intentAppName
+                    key: params.key,
+                    appId: params.appId,
+                    appName: params.appName
                 };
             }
 
diff --git a/web/gui/src/main/webapp/app/view/topo/topoTraffic.js b/web/gui/src/main/webapp/app/view/topo/topoTraffic.js
index 2ca71cc..8b6085c 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoTraffic.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoTraffic.js
@@ -176,6 +176,18 @@
         flash.flash('Host-to-Host flow added');
     }
 
+    function removeIntent (d) {
+        $log.debug('Entering removeIntent');
+        wss.sendEvent('removeIntent', {
+            appId: d.appId,
+            appName: d.appName,
+            key: d.key
+        });
+        trafficMode = 'intents';
+        hoverMode = null;
+        flash.flash('Intent removed');
+    }
+
     function addMultiSourceIntent () {
         var so = api.selectOrder();
         wss.sendEvent('addMultiSourceIntent', {
@@ -223,7 +235,8 @@
                 // TODO: these should move to new UI demo app
                 // invoked from buttons on detail (multi-select) panel
                 addHostIntent: addHostIntent,
-                addMultiSourceIntent: addMultiSourceIntent
+                addMultiSourceIntent: addMultiSourceIntent,
+                removeIntent: removeIntent
             };
         }]);
 }());
diff --git a/web/gui/src/main/webapp/tests/app/view/topo/topoTraffic-spec.js b/web/gui/src/main/webapp/tests/app/view/topo/topoTraffic-spec.js
index 16686e1..4febcb1 100644
--- a/web/gui/src/main/webapp/tests/app/view/topo/topoTraffic-spec.js
+++ b/web/gui/src/main/webapp/tests/app/view/topo/topoTraffic-spec.js
@@ -49,6 +49,7 @@
             'requestTrafficForMode',
             'addHostIntent',
             'addMultiSourceIntent',
+            'removeIntent',
         ])).toBeTruthy();
     });
 
