diff --git a/cli/src/main/java/org/onlab/onos/cli/net/IntentsListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/IntentsListCommand.java
index 911b5f8..bc9f001 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/IntentsListCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/IntentsListCommand.java
@@ -206,11 +206,12 @@
         private class IntentSummary {
             private final String intentType;
             private int total = 0;
-            private int submitted = 0;
+            private int installReq = 0;
             private int compiling = 0;
             private int installing = 0;
             private int installed = 0;
             private int recompiling = 0;
+            private int withdrawReq = 0;
             private int withdrawing = 0;
             private int withdrawn = 0;
             private int failed = 0;
@@ -221,11 +222,11 @@
             private static final String FORMAT_SUMMARY_LINE2 =
                 "%-23s    withdrawn=    %7d   failed=      %7d";
             private static final String FORMAT_SUMMARY_LINE3 =
-                "%-23s    submitted=    %7d   compiling=   %7d";
+                "%-23s    installReq=   %7d   compiling=   %7d";
             private static final String FORMAT_SUMMARY_LINE4 =
                 "%-23s    installing=   %7d   recompiling= %7d";
             private static final String FORMAT_SUMMARY_LINE5 =
-                "%-23s    withdrawing=  %7d";
+                "%-23s    withdrawReq=  %7d   withdrawing= %7d";
             private static final String FORMAT_SUMMARY_LINE6 =
                 "%-23s    unknownState= %7d";
 
@@ -247,7 +248,7 @@
                 total++;
                 switch (intentState) {
                 case INSTALL_REQ:
-                    submitted++;
+                    installReq++;
                     break;
                 case COMPILING:
                     compiling++;
@@ -261,6 +262,9 @@
                 case RECOMPILING:
                     recompiling++;
                     break;
+                case WITHDRAW_REQ:
+                    withdrawReq++;
+                    break;
                 case WITHDRAWING:
                     withdrawing++;
                     break;
@@ -282,9 +286,9 @@
             void printState() {
                 print(FORMAT_SUMMARY_LINE1, intentType, total, installed);
                 print(FORMAT_SUMMARY_LINE2, intentType, withdrawn, failed);
-                print(FORMAT_SUMMARY_LINE3, intentType, submitted, compiling);
+                print(FORMAT_SUMMARY_LINE3, intentType, installReq, compiling);
                 print(FORMAT_SUMMARY_LINE4, intentType, installing, recompiling);
-                print(FORMAT_SUMMARY_LINE5, intentType, withdrawing);
+                print(FORMAT_SUMMARY_LINE5, intentType, withdrawReq, withdrawing);
                 if (unknownState != 0) {
                     print(FORMAT_SUMMARY_LINE6, intentType, unknownState);
                 }
@@ -300,10 +304,11 @@
                     .put("total", total)
                     .put("installed", installed)
                     .put("failed", failed)
-                    .put("submitted", submitted)
+                    .put("installReq", installReq)
                     .put("compiling", compiling)
                     .put("installing", installing)
                     .put("recompiling", recompiling)
+                    .put("withdrawReq", withdrawReq)
                     .put("withdrawing", withdrawing)
                     .put("withdrawn", withdrawn)
                     .put("unknownState", unknownState);
