diff --git a/install/tpl/mysql-virtual_domains.cf.master b/install/tpl/mysql-virtual_domains.cf.master
index 729c67759d74d6ca61ebc69aae1bc17e97ee135c..5b711422f257b4eeb9b0ea998a11346aa4c4330e 100644
--- a/install/tpl/mysql-virtual_domains.cf.master
+++ b/install/tpl/mysql-virtual_domains.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_domain
 select_field = domain
 where_field = domain
-additional_conditions = and active = 'y'
+additional_conditions = and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_email2email.cf.master b/install/tpl/mysql-virtual_email2email.cf.master
index 1e1959156483484a0437bf47c5bc81f97357e919..e18ef2407e80040c1f0e7875753902c1de61f342 100644
--- a/install/tpl/mysql-virtual_email2email.cf.master
+++ b/install/tpl/mysql-virtual_email2email.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_user
 select_field = email
 where_field = email
-additional_conditions = and postfix = 'y'
+additional_conditions = and postfix = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_forwardings.cf.master b/install/tpl/mysql-virtual_forwardings.cf.master
index 01281e353cb1e0aed1f6cd1e9426d40bc7399103..b3f3325baec53a8ac870542247fd4cf310f1e311 100644
--- a/install/tpl/mysql-virtual_forwardings.cf.master
+++ b/install/tpl/mysql-virtual_forwardings.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_forwarding
 select_field = destination
 where_field = source
-additional_conditions = and active = 'y'
+additional_conditions = and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_mailboxes.cf.master b/install/tpl/mysql-virtual_mailboxes.cf.master
index 570f069e253870cf2e90400618204d7dc4ff0a4b..d013c34cdc4afb383de7cb6afc70933850923440 100644
--- a/install/tpl/mysql-virtual_mailboxes.cf.master
+++ b/install/tpl/mysql-virtual_mailboxes.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_user
 select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
 where_field = email
-additional_conditions = and postfix = 'y'
+additional_conditions = and postfix = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_recipient.cf.master b/install/tpl/mysql-virtual_recipient.cf.master
index 254cfe5cbf4b43c81871bb50a863d71326119108..49024f3ebd262cc8929fc947e373b21d5a56fac6 100644
--- a/install/tpl/mysql-virtual_recipient.cf.master
+++ b/install/tpl/mysql-virtual_recipient.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table        = mail_access
 select_field = access
 where_field  = source
-additional_conditions = and type = 'recipient' and active = 'y'
+additional_conditions = and type = 'recipient' and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_relaydomains.cf.master b/install/tpl/mysql-virtual_relaydomains.cf.master
index 0856467e2de63fbd276cbb80a62493149b988a61..fb7bec1a3a60d53ee9103f0a8bb32cc280bc8797 100644
--- a/install/tpl/mysql-virtual_relaydomains.cf.master
+++ b/install/tpl/mysql-virtual_relaydomains.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_transport
 select_field = domain
 where_field = domain
-additional_conditions = and active = 'y'
+additional_conditions = and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_relayrecipientmaps.cf.master b/install/tpl/mysql-virtual_relayrecipientmaps.cf.master
index 4822f3be9a951603ac6a57db781094f8b6a5547e..a6304fe3234ff6ff70dbb5c594b6882ad8955ea0 100644
--- a/install/tpl/mysql-virtual_relayrecipientmaps.cf.master
+++ b/install/tpl/mysql-virtual_relayrecipientmaps.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_relay_recipient
 select_field = access
 where_field = source
-additional_conditions = and active = 'y'
+additional_conditions = and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_sender.cf.master b/install/tpl/mysql-virtual_sender.cf.master
index 7531451277c86665e35e6f8a0ef58eb9bf24d37c..0ef634aec762547e1e92113d3e6be1499c8b9a1a 100644
--- a/install/tpl/mysql-virtual_sender.cf.master
+++ b/install/tpl/mysql-virtual_sender.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table        = mail_access
 select_field = access
 where_field  = source
-additional_conditions = and type = 'sender' and active = 'y'
+additional_conditions = and type = 'sender' and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/install/tpl/mysql-virtual_transports.cf.master b/install/tpl/mysql-virtual_transports.cf.master
index 0040d1d4ed9bd5f8399e2525a1857c312e3d4836..048a7a81ac85deec4ae936a74515dc9f5cf2748c 100644
--- a/install/tpl/mysql-virtual_transports.cf.master
+++ b/install/tpl/mysql-virtual_transports.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_transport
 select_field = transport
 where_field = domain
-additional_conditions = and active = 'y'
+additional_conditions = and active = 'y' and server_id = {server_id}
 hosts = {mysql_server_ip}
\ No newline at end of file
diff --git a/server/lib/classes/modules.inc.php b/server/lib/classes/modules.inc.php
index 408f4d3d5faa17471e82a8a8af11c2b7381468a4..ed855b810960d77981105791f74dc84a159b9b58 100644
--- a/server/lib/classes/modules.inc.php
+++ b/server/lib/classes/modules.inc.php
@@ -109,6 +109,15 @@ class modules {
 				
 				$this->current_datalog_id = $d["datalog_id"];
 				
+				/*
+				* If we are in a mirror setup, rewrite the server_id of records that originally 
+				* belonged to the mirrored server to the local server_id
+				*/
+				if($conf["mirror_server_id"] > 0 && $d['dbtable'] != 'server') {
+					if(isset($data['new']['server_id']) && $data['new']['server_id'] == $conf["mirror_server_id"]) $data['new']['server_id'] = $conf["server_id"];
+					if(isset($data['old']['server_id']) && $data['old']['server_id'] == $conf["mirror_server_id"]) $data['old']['server_id'] = $conf["server_id"];
+				}
+				
 				if(count($data['new']) > 0) {
 					if($d["action"] == 'i' || $d["action"] == 'u') {
 						$idx = explode(":",$d["dbidx"]);