diff --git a/cli/cli/c_actions.py b/cli/cli/c_actions.py
index fb374c4..3c9adb0 100755
--- a/cli/cli/c_actions.py
+++ b/cli/cli/c_actions.py
@@ -1948,6 +1948,16 @@
 
     entries = json.loads(result)
 
+    entries2 = None
+    
+    if 'realtimestats' in data and data['realtimestats'] == 'group':
+        url2 = "http://%s/rest/v1/" % sdnsh.controller + ("realtimestats/groupdesc/%(dpid)s/" % data)
+        result2 = sdnsh.store.rest_simple_request(url2)
+        check_rest_result(result2)
+        if sdnsh.description:   # description debugging
+            print "command_display_rest: groupdesc result ", result2
+        entries2 = json.loads(result2)
+        
     # It certainly seems possible to map from url's to the type associated,
     # with the result, but it also makes sense to encode that type information
     # into the description
@@ -1956,6 +1966,55 @@
                                                       rest_type,
                                                       data,
                                                       entries)
+        if 'realtimestats' in data and data['realtimestats'] == 'group':
+            if entries2 is not None:
+                entries2 = command_display_rest_type_converter(table_format,
+                                                      rest_type,
+                                                      data,
+                                                      entries2)
+
+    if 'realtimestats' in data and data['realtimestats'] == 'group':
+        combResult = []
+        for groupStatEntry in entries:
+            groupId = groupStatEntry["groupId"]
+            groupDescEntry = None
+            for entry in entries2:
+                if groupId == entry["groupId"]:
+                    groupDescEntry = entry
+                    break
+            if groupDescEntry is None:
+                print "command_display_rest: missing group desc for group id %s" % (groupId)
+                continue
+            for bucketId in range(len(groupStatEntry['bucketStats'])):
+                setsrcmac = None
+                if 'SET_DL_SRC' in groupDescEntry['bucketsActions'][bucketId]:
+                    setsrcmac = groupDescEntry['bucketsActions'][bucketId]['SET_DL_SRC']
+                setdstmac = None
+                if 'SET_DL_DST' in groupDescEntry['bucketsActions'][bucketId]:
+                    setdstmac = groupDescEntry['bucketsActions'][bucketId]['SET_DL_DST']
+                pushmpls = None
+                if 'PUSH_MPLS' in groupDescEntry['bucketsActions'][bucketId]:
+                    pushmpls = groupDescEntry['bucketsActions'][bucketId]['PUSH_MPLS']
+                popmpls = None
+                if 'POP_MPLS' in groupDescEntry['bucketsActions'][bucketId]:
+                    popmpls = groupDescEntry['bucketsActions'][bucketId]['POP_MPLS']
+                outport = None
+                if 'OUTPPUT' in groupDescEntry['bucketsActions'][bucketId]:
+                    outport = groupDescEntry['bucketsActions'][bucketId]['OUTPPUT']
+                combResult.append({
+                       'groupid'       : groupId,
+                       'grouptype'     : groupDescEntry['groupType'],
+                       'totalpktcnt'   : groupStatEntry['packetCount'],
+                       'totalbytecnt'  : groupStatEntry['byteCount'],
+                       'bucketpktcnt'  : groupStatEntry['bucketStats'][bucketId]['pktCount'],
+                       'bucketbytecnt' : groupStatEntry['bucketStats'][bucketId]['byteCount'],
+                       'setsrcmac'     : setsrcmac,
+                       'setdstmac'     : setdstmac,
+                       'pushmpls'     : pushmpls,
+                       'popmpls'     : popmpls,
+                       'outport'     : outport,
+                    })
+        entries = combResult
     #
     if format:
         #
diff --git a/cli/cli/desc/version200/core.py b/cli/cli/desc/version200/core.py
index 033ca11..5085216 100755
--- a/cli/cli/desc/version200/core.py
+++ b/cli/cli/desc/version200/core.py
@@ -1953,18 +1953,20 @@
 REALTIME_GROUP_FORMAT = {
     'realtime_group' : {
         'field-orderings' : {
-            'default' : [ 'Idx', 'grouptype', 'totalpktcnt', 'totalbytecnt',
+            'default' : [ 'Idx', 'groupid', 'grouptype', 'totalpktcnt', 'totalbytecnt',
                           'bucketpktcnt', 'bucketbytecnt', 
                           'setsrcmac', 'setdstmac',
                           'pushmpls', 'popmpls',
                           'outport' ],
-            'scoped' : [ 'Idx', 'grouptype', 'totalpktcnt', 'totalbytecnt',
+            'scoped' : [ 'Idx', 'groupid', 'grouptype', 'totalpktcnt', 'totalbytecnt',
                           'bucketpktcnt', 'bucketbytecnt', 
                           'setsrcmac', 'setdstmac',
                           'pushmpls', 'popmpls',
                           'outport' ],
             },
         'fields': {
+            'groupid'               : { 'verbose-name' : 'Group Id',
+                                     },
             'grouptype'               : { 'verbose-name' : 'Group type',
                                      },
             'totalpktcnt'         : { 'verbose-name' : 'Pkts',
diff --git a/cli/sdncon/rest/views.py b/cli/sdncon/rest/views.py
index 760f11f..44af953 100755
--- a/cli/sdncon/rest/views.py
+++ b/cli/sdncon/rest/views.py
@@ -409,6 +409,8 @@
     #url = controller_url('core', 'switch', dpid, stattype, 'json')
     if stattype == 'group':
         stattype = 'groupStats'
+    if stattype == 'groupdesc':
+        stattype = 'groupDesc'
     url = "http://localhost:8080/wm/floodlight/core/switch/%s/%s/json" % (dpid, stattype)
     return get_sdnplatform_response(url)
 
