diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py
index c49a552f2c..cb6a503f6c 100644
--- a/openstackclient/compute/v2/server_group.py
+++ b/openstackclient/compute/v2/server_group.py
@@ -17,6 +17,7 @@
 
 import logging
 
+from novaclient import api_versions
 from osc_lib.command import command
 from osc_lib import exceptions
 from osc_lib import utils
@@ -136,11 +137,15 @@ class ListServerGroup(command.Lister):
         compute_client = self.app.client_manager.compute
         data = compute_client.server_groups.list(parsed_args.all_projects)
 
+        policy_key = 'Policies'
+        if compute_client.api_version >= api_versions.APIVersion("2.64"):
+            policy_key = 'Policy'
+
         if parsed_args.long:
             column_headers = columns = (
                 'ID',
                 'Name',
-                'Policies',
+                policy_key,
                 'Members',
                 'Project Id',
                 'User Id',
@@ -149,7 +154,7 @@ class ListServerGroup(command.Lister):
             column_headers = columns = (
                 'ID',
                 'Name',
-                'Policies',
+                policy_key,
             )
 
         return (column_headers,
diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py
index 6e12f735d4..3143098474 100644
--- a/openstackclient/tests/unit/compute/v2/fakes.py
+++ b/openstackclient/tests/unit/compute/v2/fakes.py
@@ -1244,7 +1244,7 @@ class FakeServerGroup(object):
     """Fake one server group"""
 
     @staticmethod
-    def create_one_server_group(attrs=None):
+    def _create_one_server_group(attrs=None):
         """Create a fake server group
 
         :param Dictionary attrs:
@@ -1261,7 +1261,6 @@ class FakeServerGroup(object):
             'members': [],
             'metadata': {},
             'name': 'server-group-name-' + uuid.uuid4().hex,
-            'policies': [],
             'project_id': 'server-group-project-id-' + uuid.uuid4().hex,
             'user_id': 'server-group-user-id-' + uuid.uuid4().hex,
         }
@@ -1274,6 +1273,38 @@ class FakeServerGroup(object):
             loaded=True)
         return server_group
 
+    @staticmethod
+    def create_one_server_group(attrs=None):
+        """Create a fake server group
+
+        :param Dictionary attrs:
+            A dictionary with all attributes
+        :return:
+            A FakeResource object, with id and other attributes
+        """
+        if attrs is None:
+            attrs = {}
+        attrs.setdefault('policies', ['policy1', 'policy2'])
+        return FakeServerGroup._create_one_server_group(attrs)
+
+
+class FakeServerGroupV264(object):
+    """Fake one server group fo API >= 2.64"""
+
+    @staticmethod
+    def create_one_server_group(attrs=None):
+        """Create a fake server group
+
+        :param Dictionary attrs:
+            A dictionary with all attributes
+        :return:
+            A FakeResource object, with id and other attributes
+        """
+        if attrs is None:
+            attrs = {}
+        attrs.setdefault('policy', 'policy1')
+        return FakeServerGroup._create_one_server_group(attrs)
+
 
 class FakeUsage(object):
     """Fake one or more usage."""
diff --git a/openstackclient/tests/unit/compute/v2/test_server_group.py b/openstackclient/tests/unit/compute/v2/test_server_group.py
index 9cd876ead1..4e20ed4231 100644
--- a/openstackclient/tests/unit/compute/v2/test_server_group.py
+++ b/openstackclient/tests/unit/compute/v2/test_server_group.py
@@ -15,6 +15,7 @@
 
 from unittest import mock
 
+from novaclient import api_versions
 from osc_lib import exceptions
 from osc_lib import utils
 
@@ -53,6 +54,33 @@ class TestServerGroup(compute_fakes.TestComputev2):
         self.server_groups_mock.reset_mock()
 
 
+class TestServerGroupV264(TestServerGroup):
+
+    fake_server_group = \
+        compute_fakes.FakeServerGroupV264.create_one_server_group()
+
+    columns = (
+        'id',
+        'members',
+        'name',
+        'policy',
+        'project_id',
+        'user_id',
+    )
+
+    data = (
+        fake_server_group.id,
+        utils.format_list(fake_server_group.members),
+        fake_server_group.name,
+        fake_server_group.policy,
+        fake_server_group.project_id,
+        fake_server_group.user_id,
+    )
+
+    def setUp(self):
+        super(TestServerGroupV264, self).setUp()
+
+
 class TestServerGroupCreate(TestServerGroup):
 
     def setUp(self):
@@ -230,6 +258,76 @@ class TestServerGroupList(TestServerGroup):
         self.assertEqual(self.list_data_long, tuple(data))
 
 
+class TestServerGroupListV264(TestServerGroupV264):
+
+    list_columns = (
+        'ID',
+        'Name',
+        'Policy',
+    )
+
+    list_columns_long = (
+        'ID',
+        'Name',
+        'Policy',
+        'Members',
+        'Project Id',
+        'User Id',
+    )
+
+    list_data = ((
+        TestServerGroupV264.fake_server_group.id,
+        TestServerGroupV264.fake_server_group.name,
+        TestServerGroupV264.fake_server_group.policy,
+    ),)
+
+    list_data_long = ((
+        TestServerGroupV264.fake_server_group.id,
+        TestServerGroupV264.fake_server_group.name,
+        TestServerGroupV264.fake_server_group.policy,
+        utils.format_list(TestServerGroupV264.fake_server_group.members),
+        TestServerGroupV264.fake_server_group.project_id,
+        TestServerGroupV264.fake_server_group.user_id,
+    ),)
+
+    def setUp(self):
+        super(TestServerGroupListV264, self).setUp()
+
+        self.server_groups_mock.list.return_value = [self.fake_server_group]
+        self.cmd = server_group.ListServerGroup(self.app, None)
+        self.app.client_manager.compute.api_version = api_versions.APIVersion(
+            '2.64')
+
+    def test_server_group_list(self):
+        arglist = []
+        verifylist = [
+            ('all_projects', False),
+            ('long', False),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+        columns, data = self.cmd.take_action(parsed_args)
+        self.server_groups_mock.list.assert_called_once_with(False)
+
+        self.assertEqual(self.list_columns, columns)
+        self.assertEqual(self.list_data, tuple(data))
+
+    def test_server_group_list_with_all_projects_and_long(self):
+        arglist = [
+            '--all-projects',
+            '--long',
+        ]
+        verifylist = [
+            ('all_projects', True),
+            ('long', True),
+        ]
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+        columns, data = self.cmd.take_action(parsed_args)
+        self.server_groups_mock.list.assert_called_once_with(True)
+
+        self.assertEqual(self.list_columns_long, columns)
+        self.assertEqual(self.list_data_long, tuple(data))
+
+
 class TestServerGroupShow(TestServerGroup):
 
     def setUp(self):