Index: pokernetwork/pokertable.py
===================================================================
--- pokernetwork/pokertable.py	(revision 6350)
+++ pokernetwork/pokertable.py	(working copy)
@@ -1276,6 +1276,7 @@
             self.observers.remove(client)
         else:
             del self.serial2client[serial]
+        assert client.tables.has_key(self.game.id), "bug#15016 player %d should be at table %d" % (serial, self.game.id)
         del client.tables[self.game.id]
         # FIXME: I don't think that PokerTable should be reaching into the
         #        member variables of the client classes.  Really the line
Index: tests/test-pokertable.py.in
===================================================================
--- tests/test-pokertable.py.in	(revision 6350)
+++ tests/test-pokertable.py.in	(working copy)
@@ -738,6 +738,15 @@
         self.table.disconnectPlayer(p1, 1)
         self.table.disconnectPlayer(p9, 9)
     # -------------------------------------------------------------------
+    def test13_1_destroyPlayer(self):
+        """Test a destroy player"""
+        p1 = self.createPlayer(1, clientClass=MockClientWithTableDict)
+        del p1.tables[101]
+        try:
+            self.table.destroyPlayer(p1, 1)        
+        except AssertionError:
+            self.assertEqual('bug#15016 player 1 should be at table 101', str(sys.exc_info()[1]))
+    # -------------------------------------------------------------------
     def test13altForNewClientAPI_disconnect(self):
         """Test player disconnection once the client API has a removeTable method
            This is currently turned off because the change has not been
@@ -1878,7 +1887,7 @@
 def Run():
     seed(time.time())
     loader = runner.TestLoader()
-#    loader.methodPrefix = "test_trynow"
+    loader.methodPrefix = "test13_1"
 #    os.environ['VERBOSE_T'] = '4'
     suite = loader.suiteFactory()
     suite.addTest(loader.loadClass(PokerTableTestCase))
