diff --git a/AUTHORS.md b/AUTHORS.md
index d715eed6f..9f4060c25 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -43,3 +43,5 @@
 -   ([@rico-chet](https://github.com/rico-chet))
 -   ([@rmadsen-ks](https://github.com/rmadsen-ks))
 -   ([@stonebig](https://github.com/stonebig))
+-   ([@testrunner123](https://github.com/testrunner123))
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c8b54b36d..728c8c69b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,19 +8,18 @@ This document follows the conventions laid out in [Keep a CHANGELOG][].
 ## [unreleased][]
 
 ### Added
--   Added clr.GetClrType (#432)(#433)
--   Allowed passing None for nullable args (#460)
+-   Added `clr.GetClrType` (#432, #433)
+-   Allowed passing `None` for nullable args (#460)
 -   Added keyword arguments based on C# syntax for calling CPython methods (#461)
 
-
 ### Changed
 
--   Changed `Bar` feature
-
 ### Fixed
 
 -   Fixed Visual Studio 2017 compat (#434) for setup.py
--   Fixed `FooBar` bug
+-   Fixed crash on exit of the Python interpreter if a python class
+    derived from a .NET class has a `__namespace__` or `__assembly__`
+    attribute (#481)
 
 ## [2.3.0][] - 2017-03-11
 
diff --git a/src/runtime/typemanager.cs b/src/runtime/typemanager.cs
index 6f373f036..ad0fddcc1 100644
--- a/src/runtime/typemanager.cs
+++ b/src/runtime/typemanager.cs
@@ -206,6 +206,7 @@ internal static IntPtr CreateSubType(IntPtr py_name, IntPtr py_base_type, IntPtr
                 if (0 != Runtime.PyMapping_HasKey(py_dict, assemblyKey.Handle))
                 {
                     var pyAssembly = new PyObject(Runtime.PyDict_GetItem(py_dict, assemblyKey.Handle));
+                    Runtime.XIncref(pyAssembly.Handle);
                     disposeList.Add(pyAssembly);
                     if (!Converter.ToManagedValue(pyAssembly.Handle, typeof(string), out assembly, false))
                     {
@@ -218,6 +219,7 @@ internal static IntPtr CreateSubType(IntPtr py_name, IntPtr py_base_type, IntPtr
                 if (0 != Runtime.PyMapping_HasKey(py_dict, namespaceKey.Handle))
                 {
                     var pyNamespace = new PyObject(Runtime.PyDict_GetItem(py_dict, namespaceKey.Handle));
+                    Runtime.XIncref(pyNamespace.Handle);
                     disposeList.Add(pyNamespace);
                     if (!Converter.ToManagedValue(pyNamespace.Handle, typeof(string), out namespaceStr, false))
                     {
diff --git a/src/tests/test_subclass.py b/src/tests/test_subclass.py
index 8e862a56d..739c24c07 100644
--- a/src/tests/test_subclass.py
+++ b/src/tests/test_subclass.py
@@ -85,7 +85,6 @@ def OnTestEvent(self, value):
     return DerivedEventTest
 
 
-@pytest.mark.skip(reason="FIXME: test randomly pass/fails")
 def test_base_class():
     """Test base class managed type"""
     ob = SubClassTest()
@@ -98,7 +97,6 @@ def test_base_class():
     assert list(SubClassTest.test_list(ob)) == ["a", "b", "c"]
 
 
-@pytest.mark.skip(reason="FIXME: test randomly pass/fails")
 def test_interface():
     """Test python classes can derive from C# interfaces"""
     InterfaceTestClass = interface_test_class_fixture()
@@ -112,7 +110,6 @@ def test_interface():
     assert id(x) == id(ob)
 
 
-@pytest.mark.skip(reason="FIXME: test randomly pass/fails")
 def test_derived_class():
     """Test python class derived from managed type"""
     DerivedClass = derived_class_fixture()