--- zabbix-2.0.15/src/zabbix_server/server.c	2015-11-26 10:53:46.848545423 +0900
+++ zabbix-2.0.15.n/src/zabbix_server/server.c	2015-11-26 10:53:02.200397992 +0900
@@ -96,6 +96,8 @@ static char	shortopts[] = "c:n:hVR:";
 
 /* end of COMMAND LINE OPTIONS */
 
+int is_parent = 0;
+
 int	threads_num = 0;
 pid_t	*threads = NULL;
 
@@ -676,6 +678,8 @@ int	MAIN_ZABBIX_ENTRY()
 
 	if (0 == server_num)
 	{
+		is_parent = 1;
+
 		zabbix_log(LOG_LEVEL_INFORMATION, "server #0 started [main process]");
 
 		while (-1 == wait(&i))	/* wait for any child to exit */
--- zabbix-2.0.15/src/zabbix_proxy/proxy.c	2015-11-26 10:53:46.848545423 +0900
+++ zabbix-2.0.15.n/src/zabbix_proxy/proxy.c	2015-11-26 10:52:31.843228557 +0900
@@ -90,6 +90,8 @@ static char	shortopts[] = "c:n:hVR:";
 
 /* end of COMMAND LINE OPTIONS */
 
+int is_parent = 0;
+
 int	threads_num = 0;
 pid_t	*threads = NULL;
 
@@ -650,6 +652,8 @@ int	MAIN_ZABBIX_ENTRY()
 
 	if (0 == proxy_num)
 	{
+		is_parent = 1;
+
 		zabbix_log(LOG_LEVEL_INFORMATION, "proxy #0 started [main process]");
 
 		while (-1 == wait(&i))	/* wait for any child to exit */
--- zabbix-2.0.15/src/libs/zbxdbcache/dbconfig.c	2015-11-26 10:53:46.848545423 +0900
+++ zabbix-2.0.15.n/src/libs/zbxdbcache/dbconfig.c	2015-11-26 11:01:01.921505561 +0900
@@ -28,6 +28,8 @@
 #include "zbxserver.h"
 #include "zbxalgo.h"
 
+extern int	is_parent;
+
 static int	sync_in_progress = 0;
 #define	LOCK_CACHE	if (0 == sync_in_progress) zbx_mutex_lock(&config_lock)
 #define	UNLOCK_CACHE	if (0 == sync_in_progress) zbx_mutex_unlock(&config_lock)
@@ -3507,7 +3509,7 @@ void	DCconfig_lock_triggers_by_itemids(z
 
 		for (j = 0; NULL != (dc_trigger = dc_item->triggers[j]); j++)
 		{
-			if (1 == dc_trigger->locked)
+			if (1 != is_parent && 1 == dc_trigger->locked)
 			{
 				itemids[i] = 0;
 				goto next;
