diff --git a/satella/__init__.py b/satella/__init__.py
index c7fa2b242f54f7526d2d79d8347c4d5b1fd05720..5394e6e08bdb6ab6f948b545ae1cdaba80492129 100644
--- a/satella/__init__.py
+++ b/satella/__init__.py
@@ -1 +1 @@
-__version__ = '2.17.15a1'
+__version__ = '2.17.15'
diff --git a/tests/test_exceptions.py b/tests/test_exceptions.py
index 7f754740e644e21b8b8692882693591a4b06ef1b..d68a48b60d6791afe4c01ef688cda494219493d6 100644
--- a/tests/test_exceptions.py
+++ b/tests/test_exceptions.py
@@ -6,6 +6,17 @@ from satella.exceptions import BaseSatellaError, CustomException, CodedCustomExc
 
 
 class TestExceptions(unittest.TestCase):
+    def test_advanced_class_hierarchy(self):
+        class A(CodedCustomException):
+            code = None  # type: int
+            message = ''  # type: str
+
+        class B(A):
+            code = 2
+            message = 'not readed error'
+
+        b = B()
+
     def test_coded_custom_exception_no_args(self):
         CodedCustomException()