diff --git a/cli/src/main/java/org/onlab/onos/cli/net/IntentRemoveCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/IntentRemoveCommand.java
index b2cef88..df5f335 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/IntentRemoveCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/IntentRemoveCommand.java
@@ -7,6 +7,8 @@
 import org.onlab.onos.net.intent.IntentId;
 import org.onlab.onos.net.intent.IntentService;
 
+import java.math.BigInteger;
+
 /**
  * Removes host-to-host connectivity intent.
  */
@@ -22,12 +24,11 @@
     protected void execute() {
         IntentService service = get(IntentService.class);
 
-        int radix = id.startsWith("0x") ? 16 : 10;
-        if (radix == 16) {
+        if (id.startsWith("0x")) {
             id = id.replaceFirst("0x", "");
         }
 
-        IntentId intentId = IntentId.valueOf(Long.parseLong(id, radix));
+        IntentId intentId = IntentId.valueOf(new BigInteger(id, 16).longValue());
         Intent intent = service.getIntent(intentId);
         if (intent != null) {
             service.withdraw(intent);
diff --git a/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
index 1838814..03d5ce8 100644
--- a/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
@@ -257,8 +257,8 @@
      * @return result of compilation
      */
     private List<Intent> compileIntent(Intent intent) {
-        if (intent instanceof Intent) {
-            return ImmutableList.of((Intent) intent);
+        if (intent.isInstallable()) {
+            return ImmutableList.of(intent);
         }
 
         List<Intent> installable = new ArrayList<>();
