diff --git a/netconf/capabilities.py b/netconf/capabilities.py
index 94d0836..1cd2ffc 100755
--- a/netconf/capabilities.py
+++ b/netconf/capabilities.py
@@ -37,13 +37,9 @@
         self.server_caps.add(C.NETCONF_BASE_10)
         self.server_caps.add(C.NETCONF_BASE_11)
         self.server_caps.add(C.NETCONF_MONITORING)
+        self.server_caps.add(C.NETCONF_WRITABLE)
         for schema in schemas:
             self.server_caps.add(''.join([URN_PREFIX, schema]))
-            self.server_caps.add(''.join([
-                                            URN_PREFIX,
-                                            schema,
-                                            ':writable-running'])
-                                )
             self.voltha_schemas.add(schema)
 
     def set_schema_dir(self, schema_dir):
diff --git a/netconf/constants.py b/netconf/constants.py
index 704e1f8..9733327 100644
--- a/netconf/constants.py
+++ b/netconf/constants.py
@@ -29,10 +29,10 @@
     CLIENT_CRED_DIRECTORY = 'security/client_credentials'
 
     # YANG message definition file - generated file
-    YANG_MESSAGE_DEFINITIONS_FILE='yang_message_defs.py'
+    YANG_MESSAGE_DEFINITIONS_FILE = 'yang_message_defs.py'
 
     # Generated YANG schemas to ignore as not used by Netconf client
-    SCHEMAS_TO_IGNORE =['http.yang', 'yang_options.yang', 'descriptor.yang']
+    SCHEMAS_TO_IGNORE = ['http.yang', 'yang_options.yang', 'descriptor.yang']
 
     # Datastores
     RUNNING = "running"
@@ -64,6 +64,7 @@
     NETCONF_BASE_11 = "urn:ietf:params:netconf:base:1.1"
     NETCONF_MONITORING = "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"
     NETCONF_WRITABLE = "urn:ietf:params:netconf:capability:writable-running:1.0"
+    NETCONF_CANDIDATE = "urn:ietf:params:netconf:capability:candidate:1.0"
 
     # XML
     XML_HEADER = """<?xml version="1.0" encoding="utf-8"?>"""
@@ -107,7 +108,7 @@
     MESSAGE_ID = "message-id"
     XMLNS = "xmlns"
     DELIMITER = "]]>]]>"
-    DELIMITER_1_1 ="##"
+    DELIMITER_1_1 = "##"
 
     NS_MAP = {
         'nc': 'urn:ietf:params:xml:ns:netconf:base:1.0',
diff --git a/netconf/nc_rpc/base/close_session.py b/netconf/nc_rpc/base/close_session.py
index 05b56b4..3702a14 100644
--- a/netconf/nc_rpc/base/close_session.py
+++ b/netconf/nc_rpc/base/close_session.py
@@ -22,8 +22,8 @@
 
 log = structlog.get_logger()
 
-class CloseSession(Rpc):
 
+class CloseSession(Rpc):
     def __init__(self, request, request_xml, grpc_client, session,
                  capabilities):
         super(CloseSession, self).__init__(request, request_xml, grpc_client,
@@ -36,12 +36,22 @@
             return self.rpc_response
 
         self.rpc_response.node = etree.Element("ok")
+
+        # Set the close session flag
+        self.rpc_response.close_session = True
         return self.rpc_response
 
-
     def _validate_parameters(self):
-        for child in self.rpc_method.getchildren():
-            # There cannot be parameters to a close session request
-            self.rpc_response.is_error = True
-            self.rpc_response.node = ncerror.BadMsg(self.rpc_request)
-            return
\ No newline at end of file
+
+        if self.request:
+            try:
+                if self.request['command'] != 'close-session':
+                    self.rpc_response.is_error = True
+                    self.rpc_response.node = ncerror.BadMsg(self.request_xml)
+                    return
+
+            except Exception as e:
+                self.rpc_response.is_error = True
+                self.rpc_response.node = ncerror.ServerException(
+                    self.request_xml)
+                return
