diff --git a/python/test/src/testipaaca.py b/python/test/src/testipaaca.py
index b304c14702fc21d01b417d589e44052c00f55874..460c1c52f2a5627cc306abdda5e688db56316669 100755
--- a/python/test/src/testipaaca.py
+++ b/python/test/src/testipaaca.py
@@ -8,7 +8,8 @@ import hamcrest as hc
 import ipaaca
 
 def handle_iu_event(iu, event_type, local):
-	print('(IU event '+event_type+' '+str(iu.uid)+')')
+	#print('(IU event '+event_type+' '+str(iu.uid)+')')
+	pass
 
 class IpaacaIUStoreTestCase(unittest.TestCase):
 	def setUp(self):
@@ -63,6 +64,21 @@ class IpaacaCommitTestCases(unittest.TestCase):
 		time.sleep(0.1)
 		received_iu = self.ib.iu_store[self.iu.uid]
 		self.assertTrue(received_iu.committed)
+	
+	def testCommitAndLocalWrite(self):
+		self.ob.add(self.iu)
+		time.sleep(0.1)
+		self.iu.commit()
+		with self.assertRaises(ipaaca.IUCommittedError):
+			self.iu.payload['data'] = 'updatedData'
+	
+	def testCommitAndRemoteWrite(self):
+		self.ob.add(self.iu)
+		time.sleep(0.1)
+		self.iu.commit()
+		received_iu = self.ib.iu_store[self.iu.uid]
+		with self.assertRaises(ipaaca.IUCommittedError):
+			received_iu.payload['data'] = 'updatedData'
 
 
 class IpaacaLinksTestCase(unittest.TestCase):
@@ -102,6 +118,56 @@ class IpaacaLinksTestCase(unittest.TestCase):
 		grinlinks = received_iu.get_links('grin')
 		self.assertEqual(len(grinlinks), 0)
 
+class IpaacaCommitTestCase(unittest.TestCase):
+	def setUp(self):
+		self.ib = ipaaca.InputBuffer('TestIn', ['sensorcategory'])
+		self.ib.register_handler(handle_iu_event)
+		self.ob = ipaaca.OutputBuffer('TestOut')
+		self.sensor_iu = ipaaca.IU('sensorcategory')
+		self.sensor_iu.payload = {'data': 'sensordata'}
+		time.sleep(0.1)
+		self.ob.add(self.sensor_iu)
+		time.sleep(0.1)
+	def tearDown(self):
+		pass
+	def testCommitAndLocalWrite(self):
+		self.sensor_iu.commit()
+		with self.assertRaises(ipaaca.IUCommittedError):
+			self.sensor_iu.payload['data'] = 'updatedData'
+	def testCommitAndRemoteWrite(self):
+		self.sensor_iu.commit()
+		received_iu = self.ib.iu_store[self.sensor_iu.uid]
+		with self.assertRaises(ipaaca.IUCommittedError):
+			received_iu.payload['data'] = 'updatedData'
+
+class IpaacaRemoteWriteTestCase(unittest.TestCase):
+	def setUp(self):
+		self.ib = ipaaca.InputBuffer('TestIn', ['sensorcategory'])
+		self.ib.register_handler(handle_iu_event)
+		self.ob = ipaaca.OutputBuffer('TestOut')
+		self.iu = ipaaca.IU('sensorcategory')
+		self.iu.payload = {'data': 'sensordata'}
+		time.sleep(0.1)
+		self.ob.add(self.iu)
+		time.sleep(0.1)
+	def tearDown(self):
+		pass
+	def testRemotePayloadChange(self):
+		self.assertIn(self.iu.uid, self.ib.iu_store)
+		received_iu = self.ib.iu_store[self.iu.uid]
+		received_iu.payload['data'] = 'updatedData'
+		time.sleep(0.1)
+		self.assertEqual(self.iu.payload['data'], 'updatedData')
+	def testRemotePayloadReplace(self):
+		self.assertIn(self.iu.uid, self.ib.iu_store)
+		received_iu = self.ib.iu_store[self.iu.uid]
+		received_iu.payload = { 'key1': 'value1', 'key2': 'value2' }
+		time.sleep(0.1)
+		self.assertEqual(len(self.iu.payload), 2)
+		self.assertEqual(self.iu.payload['key1'], 'value1')
+		self.assertEqual(self.iu.payload['key2'], 'value2')
+
+
 if __name__ == '__main__':
 	unittest.main()