diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py
index ca6cb8bb6..aa4089eb3 100644
--- a/web/pgadmin/browser/server_groups/servers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/__init__.py
@@ -295,24 +295,25 @@ class ServerNode(PGChildNodeView):
             required_ssl_fields_server_mode = ['sslcert', 'sslkey']
 
             for field in ssl_fields:
-                if field not in data:
+                if field in data:
+                    continue
+                elif config.SERVER_MODE and \
+                        field in required_ssl_fields_server_mode:
                     # In Server mode,
                     # we will set dummy SSL certificate file path which will
                     # prevent using default SSL certificates from web servers
 
-                    if config.SERVER_MODE and \
-                            field in required_ssl_fields_server_mode:
-                        # Set file manager directory from preference
-                        import os
-                        file_extn = '.key' if field.endswith('key') else '.crt'
-                        dummy_ssl_file = os.path.join(
-                            '<STORAGE_DIR>', '.postgresql',
-                            'postgresql' + file_extn
-                        )
-                        data[field] = dummy_ssl_file
+                    # Set file manager directory from preference
+                    import os
+                    file_extn = '.key' if field.endswith('key') else '.crt'
+                    dummy_ssl_file = os.path.join(
+                        '<STORAGE_DIR>', '.postgresql',
+                        'postgresql' + file_extn
+                    )
+                    data[field] = dummy_ssl_file
                     # For Desktop mode, we will allow to default
-                    else:
-                        data[field] = None
+                else:
+                    data[field] = None
 
         return flag, data
 
@@ -534,28 +535,21 @@ class ServerNode(PGChildNodeView):
         conn = manager.connection()
         connected = conn.connected()
 
-        if connected:
-            for arg in (
-                    'hostaddr', 'db', 'sslmode',
-                    'role', 'service'
-            ):
-                if arg in data:
-                    return forbidden(
-                        errmsg=gettext(
-                            "'{0}' is not allowed to modify, "
-                            "when server is connected."
-                        ).format(disp_lbl[arg])
-                    )
+        self._server_modify_disallowed_when_connected(
+            connected, data, disp_lbl)
 
         for arg in config_param_map:
-            if arg in data:
-                value = data[arg]
+            if arg not in data:
+                continue
+            elif arg == 'sslcompression' and data[arg]:
                 # sqlite3 do not have boolean type so we need to convert
                 # it manually to integer
-                if arg == 'sslcompression':
-                    value = 1 if value else 0
-                setattr(server, config_param_map[arg], value)
-                idx += 1
+                value = 1
+            else:
+                value = 0
+
+            setattr(server, config_param_map[arg], value)
+            idx += 1
 
         if idx == 0:
             return make_json_response(
@@ -591,6 +585,22 @@ class ServerNode(PGChildNodeView):
             )
         )
 
+    def _server_modify_disallowed_when_connected(
+            self, connected, data, disp_lbl):
+
+        if connected:
+            for arg in (
+                    'hostaddr', 'db', 'sslmode',
+                    'role', 'service'
+            ):
+                if arg in data:
+                    return forbidden(
+                        errmsg=gettext(
+                            "'{0}' is not allowed to modify, "
+                            "when server is connected."
+                        ).format(disp_lbl[arg])
+                    )
+
     @login_required
     def list(self, gid):
         """
