+    // using IMPLEMENT_DYNAMIC_CLASS() macro twice (which may happen if you
+    // link any object module twice mistakenly) will break this function
+    // because it will enter an infinite loop and eventually die with "out of
+    // memory" - as this is quite hard to detect if you're unaware of this,
+    // try to do some checks here
+#ifdef __WXDEBUG__
+    // more classes than we'll ever have
+    static const size_t nMaxClasses = 10000;
+    size_t nClass = 0;
+#endif // Debug
+