diff --git a/pgadmin/frm/frmMain.cpp b/pgadmin/frm/frmMain.cpp
index dfc4263..cc461e7 100644
--- a/pgadmin/frm/frmMain.cpp
+++ b/pgadmin/frm/frmMain.cpp
@@ -551,6 +551,22 @@ void frmMain::Refresh(pgObject *data)
 	}
 	else
 	{
+		if (data->GetMetaType() == PGM_SCHEMA && !data->IsCollection() && data->GetConnection()->BackendMinimumVersion(9, 3))
+		{
+			// Event trigger's backend functions are at schema level.
+			// Hence, we can consider the Event Triggers are partially belongs to at schema level.
+			// So, if any schema got refreshed, we are refreshing the event trigger collection as like schema's object.
+			// It's a special case, which effects the schema operations on the event triggers as well.
+			// To solve this, we are navigating to the parent node (database node), and then locating event trigger collections.
+			// Once, we found the event trigger collections then we do entrie collection refresh.
+			//
+			wxTreeItemId dbItem = browser->GetItemParent(browser->GetItemParent(browser->GetSelection()));
+			pgCollection *eventTrgCol = browser->FindCollection(eventTriggerFactory, dbItem);
+
+			if(eventTrgCol)
+			Refresh(eventTrgCol);
+		}
+
 		// Scan the child nodes and make a list of those that are expanded
 		// This is not an exact science as node names may change etc.
 		wxArrayString expandedNodes;
@@ -562,7 +578,6 @@ void frmMain::Refresh(pgObject *data)
 		data->SetDirty();
 
 		pgObject *newData = data->Refresh(browser, currentItem);
-
 		done = !data->GetConnection() || data->GetConnection()->GetStatus() == PGCONN_OK;
 
 		if (newData != data)
diff --git a/pgadmin/include/schema/pgEventTrigger.h b/pgadmin/include/schema/pgEventTrigger.h
index 5092cb7..61561ba 100644
--- a/pgadmin/include/schema/pgEventTrigger.h
+++ b/pgadmin/include/schema/pgEventTrigger.h
@@ -132,6 +132,7 @@ private:
 	OID functionOid, schemaOid;
 	bool enabled;
 	pgFunction *eventTriggerFunction;
+	pgSchema *evntTrgFuncSchema;
 };
 
 class pgEventTriggerCollection : public pgDatabaseObjCollection
diff --git a/pgadmin/schema/pgEventTrigger.cpp b/pgadmin/schema/pgEventTrigger.cpp
index e6bf808..208b429 100644
--- a/pgadmin/schema/pgEventTrigger.cpp
+++ b/pgadmin/schema/pgEventTrigger.cpp
@@ -24,6 +24,7 @@ pgEventTrigger::pgEventTrigger(const wxString &newName)
 	: pgDatabaseObject(eventTriggerFactory, newName)
 {
 	eventTriggerFunction = 0;
+	evntTrgFuncSchema = 0;
 }
 
 pgEventTrigger::~pgEventTrigger()
@@ -33,6 +34,8 @@ pgEventTrigger::~pgEventTrigger()
 		// eventTriggerFunction wasn't appended to tree, so we need to delete it manually.
 		delete eventTriggerFunction;
 	}
+
+	delete evntTrgFuncSchema;
 }
 
 pgCollection *pgEventTriggerFactory::CreateCollection(pgObject *obj)
@@ -122,14 +125,15 @@ void pgEventTrigger::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView
 			delete eventTriggerFunction;
 
 		wxString restr = wxT(" WHERE nsp.oid= ") + NumToStr(GetSchemaOid()) + wxT("::oid\n");
-		pgObject *evntTrgSchema;
-		evntTrgSchema = schemaFactory.CreateObjects((pgCollection *)browser->GetObject(browser->GetSelection()), 0, restr);
+		evntTrgFuncSchema = (pgSchema *)schemaFactory.CreateObjects((pgCollection *)browser->GetObject(browser->GetSelection()), 0, restr);
+
 		// append function here
-		eventTriggerFunction = functionFactory.AppendFunctions(this, (pgSchema *)evntTrgSchema, browser, wxT(" WHERE pr.oid = ") + NumToStr(functionOid) + wxT("::oid\n"));
+		eventTriggerFunction = functionFactory.AppendFunctions(this, evntTrgFuncSchema, browser, wxT(" WHERE pr.oid = ") + NumToStr(functionOid) + wxT("::oid\n"));
 		if (eventTriggerFunction)
 		{
 			iSetFunction(eventTriggerFunction->GetQuotedFullIdentifier());
 		}
+
 	}
 
 	if (properties)
