diff --git a/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py b/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py
index 676cea05213c6de46f1383745bccb95b5251d81a..907d102b628fda4bf6686dc86949bb4919372904 100644
--- a/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py
+++ b/master/bt5/slapos_cloud/TestTemplateItem/testSlapOSSlapTool.py
@@ -12,8 +12,7 @@ import xml.dom.ext
 import StringIO
 import difflib
 
-class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
-
+class TestSlapOSSlapToolMixin(testSlapOSMixin):
   def generateNewId(self):
     return self.portal.portal_ids.generateNewId(
         id_group=('slapos_core_test'))
@@ -32,7 +31,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
       'id="param">%s</parameter></instance>' % self.generateNewId()
 
   def afterSetUp(self):
-    super(TestSlapOSSlapToolComputerAccess, self).afterSetUp()
+    super(TestSlapOSSlapToolMixin, self).afterSetUp()
     self.portal_slap = self.portal.portal_slap
     new_id = self.generateNewId()
 
@@ -50,7 +49,6 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
     self.tic()
 
     self.computer_id = self.computer.getReference()
-    self.login(self.computer_id)
 
   def beforeTearDown(self):
     pass
@@ -181,6 +179,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
 
     self.tic()
 
+class TestSlapOSSlapToolComputerAccess(TestSlapOSSlapToolMixin):
   def _getPartitionXml(self):
     return """\
 <?xml version='1.0' encoding='UTF-8'?>
@@ -510,6 +509,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
       self.portal_slap.getComputerInformation.im_func.func_name)
 
   def test_not_accessed_getComputerStatus(self):
+    self.login(self.computer_id)
     created_at = rfc1123_date(DateTime())
     response = self.portal_slap.getComputerStatus(self.computer_id)
     self.assertEqual(200, response.status)
@@ -548,6 +548,7 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
         '\n'.join([q for q in difflib.unified_diff(expected_xml.split('\n'), got_xml.split('\n'))]))
 
   def test_accessed_getComputerStatus(self):
+    self.login(self.computer_id)
     self.portal_slap.getComputerInformation(self.computer_id)
     created_at = rfc1123_date(DateTime())
     response = self.portal_slap.getComputerStatus(self.computer_id)
@@ -586,3 +587,42 @@ class TestSlapOSSlapToolComputerAccess(testSlapOSMixin):
 )
     self.assertEqual(expected_xml, got_xml,
         '\n'.join([q for q in difflib.unified_diff(expected_xml.split('\n'), got_xml.split('\n'))]))
+
+class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin):
+  def test_getComputerPartitionCertificate(self):
+    self._makeComplexComputer()
+    self.login(self.start_requested_software_instance.getReference())
+    response = self.portal_slap.getComputerPartitionCertificate(self.computer_id,
+      self.start_requested_software_instance.getAggregateValue(
+        portal_type='Computer Partition').getReference())
+    self.assertEqual(200, response.status)
+    self.assertEqual( 'public, max-age=0, must-revalidate',
+        response.headers.get('cache-control'))
+    self.assertEqual('REMOTE_USER',
+        response.headers.get('vary'))
+    self.assertTrue('last-modified' in response.headers)
+    self.assertEqual('text/xml; charset=utf-8',
+        response.headers.get('content-type'))
+    # check returned XML
+    xml_fp = StringIO.StringIO()
+
+    xml.dom.ext.PrettyPrint(xml.dom.ext.reader.Sax.FromXml(response.body),
+        stream=xml_fp)
+    xml_fp.seek(0)
+    got_xml = xml_fp.read()
+    expected_xml = """\
+<?xml version='1.0' encoding='UTF-8'?>
+<marshal>
+  <dictionary id='i2'>
+    <string>certificate</string>
+    <string>%(instance_certificate)s</string>
+    <string>key</string>
+    <string>%(instance_key)s</string>
+  </dictionary>
+</marshal>
+""" % dict(
+  instance_certificate=self.start_requested_software_instance.getSslCertificate(),
+  instance_key=self.start_requested_software_instance.getSslKey()
+)
+    self.assertEqual(expected_xml, got_xml,
+        '\n'.join([q for q in difflib.unified_diff(expected_xml.split('\n'), got_xml.split('\n'))]))
diff --git a/master/bt5/slapos_cloud/bt/revision b/master/bt5/slapos_cloud/bt/revision
index e3f1e9b791c84fce95fe992dc246e9e2286c84ed..c147342cbefa3ef64ade3ed72b63aa05906a1829 100644
--- a/master/bt5/slapos_cloud/bt/revision
+++ b/master/bt5/slapos_cloud/bt/revision
@@ -1 +1 @@
-80
\ No newline at end of file
+81
\ No newline at end of file