diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py
index cdec278..88477bb 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py
@@ -225,7 +225,8 @@ class CastView(PGChildNodeView):
         """
         sql = render_template(
             "/".join([self.template_path, 'properties.sql']),
-            datlastsysoid=self.manager.db_info[did]['datlastsysoid']
+            datlastsysoid=self.manager.db_info[did]['datlastsysoid'],
+            showsysobj=self.blueprint.show_system_objects
         )
         status, res = self.conn.execute_dict(sql)
 
@@ -252,15 +253,15 @@ class CastView(PGChildNodeView):
         """
         res = []
         sql = render_template(
-            "/".join([self.template_path, 'properties.sql']),
-            datlastsysoid=self.manager.db_info[did]['datlastsysoid']
+            "/".join([self.template_path, 'nodes.sql']),
+            datlastsysoid=self.manager.db_info[did]['datlastsysoid'],
+            showsysobj=self.blueprint.show_system_objects
         )
         status, rset = self.conn.execute_2darray(sql)
         if not status:
             return internal_server_error(errormsg=rset)
 
         for row in rset['rows']:
-            row['castcontext'] = True if row['castcontext'] == 'IMPLICIT' else False
             res.append(
                 self.blueprint.generate_browser_node(
                     row['oid'],
@@ -275,6 +276,31 @@ class CastView(PGChildNodeView):
         )
 
     @check_precondition
+    def node(self, gid, sid, did, cid):
+        res = []
+        sql = render_template(
+            "/".join([self.template_path, 'nodes.sql']),
+            cid=cid
+        )
+        status, rset = self.conn.execute_2darray(sql)
+        if not status:
+            return internal_server_error(errormsg=rset)
+
+        for row in rset['rows']:
+            res.append(
+                self.blueprint.generate_browser_node(
+                    row['oid'],
+                    did,
+                    row['name'],
+                    icon="icon-fts_template"
+                ))
+
+        return make_json_response(
+            data=res,
+            status=200
+        )
+
+    @check_precondition
     def properties(self, gid, sid, did, cid):
         """
         This function will show the properties of the selected cast node
@@ -287,7 +313,8 @@ class CastView(PGChildNodeView):
         sql = render_template(
             "/".join([self.template_path, 'properties.sql']),
             cid=cid,
-            datlastsysoid=self.manager.db_info[did]['datlastsysoid']
+            datlastsysoid=self.manager.db_info[did]['datlastsysoid'],
+            showsysobj=self.blueprint.show_system_objects
         )
         status, res = self.conn.execute_dict(sql)
 
@@ -338,7 +365,8 @@ class CastView(PGChildNodeView):
             sql = render_template("/".join([self.template_path, 'properties.sql']),
                                   srctyp=data['srctyp'],
                                   trgtyp=data['trgtyp'],
-                                  datlastsysoid=self.manager.db_info[did]['datlastsysoid']
+                                  datlastsysoid=self.manager.db_info[did]['datlastsysoid'],
+                                  showsysobj=self.blueprint.show_system_objects
                                   )
             status, cid = self.conn.execute_scalar(sql)
             if not status:
@@ -485,7 +513,8 @@ class CastView(PGChildNodeView):
             if cid is not None:
                 sql = render_template("/".join([self.template_path, 'properties.sql']),
                                       cid=cid,
-                                      datlastsysoid=self.manager.db_info[did]['datlastsysoid'])
+                                      datlastsysoid=self.manager.db_info[did]['datlastsysoid'],
+                                      showsysobj=self.blueprint.show_system_objects)
                 status, res = self.conn.execute_dict(sql)
 
                 if not status:
@@ -614,7 +643,7 @@ class CastView(PGChildNodeView):
             did: Database ID
             cid: Cast ID
         """
-        dependents_result = self.get_dependents(self.conn, cid, 'cast')
+        dependents_result = self.get_dependents(self.conn, cid)
         return ajax_response(
                 response=dependents_result,
                 status=200
@@ -632,7 +661,7 @@ class CastView(PGChildNodeView):
             did: Database ID
             cid: Cast ID
         """
-        dependencies_result = self.get_dependencies(self.conn, cid, 'cast')
+        dependencies_result = self.get_dependencies(self.conn, cid)
         return ajax_response(
                 response=dependencies_result,
                 status=200
diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/create.sql
index cef76ca..edd2444 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/create.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/create.sql
@@ -1,10 +1,5 @@
 {# CREATE CAST Statement #}
-{% if is_sql %}
--- Cast: {{conn|qtTypeIdent(data.srctyp)}}->{{ conn|qtTypeIdent(data.trgtyp) }};
 
--- DROP CAST ({{ conn|qtTypeIdent(data.srctyp) }} AS {{ conn|qtTypeIdent(data.trgtyp) }});
-
-{% endif %}
 {% if data and data.srctyp and data.trgtyp %}
 CREATE CAST ({{ conn|qtTypeIdent(data.srctyp) }} AS {{ conn|qtTypeIdent(data.trgtyp) }})
 {% if data.proname and data.proname != 'binary compatible'%}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/nodes.sql
new file mode 100644
index 0000000..87f331f
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/nodes.sql
@@ -0,0 +1,23 @@
+    SELECT
+        ca.oid,
+        concat(format_type(st.oid,NULL),'->',format_type(tt.oid,tt.typtypmod)) as name
+    FROM pg_cast ca
+    JOIN pg_type st ON st.oid=castsource
+    JOIN pg_namespace ns ON ns.oid=st.typnamespace
+    JOIN pg_type tt ON tt.oid=casttarget
+    JOIN pg_namespace nt ON nt.oid=tt.typnamespace
+    LEFT JOIN pg_proc pr ON pr.oid=castfunc
+    LEFT JOIN pg_namespace np ON np.oid=pr.pronamespace
+    LEFT OUTER JOIN pg_description des ON (des.objoid=ca.oid AND des.objsubid=0 AND des.classoid='pg_cast'::regclass)
+    {% if cid %}
+        WHERE ca.oid={{cid}}::int
+    {% endif %}
+    {# Check for Show system object #}
+    {% if (not showsysobj) and datlastsysoid %}
+        {% if cid %}
+            AND
+        {% else %}
+            WHERE
+        {% endif %}
+        ca.oid > {{datlastsysoid}}::OID
+    {% endif %}
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/properties.sql
index 15efa95..255ee23 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/sql/9.1_plus/properties.sql
@@ -14,7 +14,7 @@
     SELECT
         ca.oid,
     CASE
-        WHEN {{datlastsysoid}}::OID > ca.oid then 'Yes' ELSE 'No'
+        WHEN {{datlastsysoid}}::OID > ca.oid then True ELSE False
     END AS syscast,
     CASE
         WHEN ca.castcontext = 'a' THEN 'ASSIGNMENT'
@@ -46,9 +46,8 @@
         WHERE ca.oid={{cid}}::int
     {% endif %}
 
---TODO: add check for showSystemObject(). currently assumed as false
-    {#
-    {% if datlastsysoid %}
+    {# Check for Show system object #}
+    {% if (not showsysobj) and datlastsysoid %}
         {% if cid %}
             AND
         {% else %}
@@ -56,6 +55,5 @@
         {% endif %}
         ca.oid > {{datlastsysoid}}::OID
     {% endif %}
-    #}
     ORDER BY st.typname, tt.typname
 {% endif %}
\ No newline at end of file
