Macro LUAI_ASSERT eases turning assertions on
diff --git a/llimits.h b/llimits.h
index b86d345..48c97f9 100644
--- a/llimits.h
+++ b/llimits.h
@@ -84,7 +84,15 @@
 typedef LUAI_UACINT l_uacInt;
 
 
-/* internal assertions for in-house debugging */
+/*
+** Internal assertions for in-house debugging
+*/
+#if defined LUAI_ASSERT
+#undef NDEBUG
+#include <assert.h>
+#define lua_assert(c)           assert(c)
+#endif
+
 #if defined(lua_assert)
 #define check_exp(c,e)		(lua_assert(c), (e))
 /* to avoid problems with conditions too long */
diff --git a/ltests.h b/ltests.h
index 02331eb..2b4498c 100644
--- a/ltests.h
+++ b/ltests.h
@@ -20,9 +20,7 @@
 
 
 /* turn on assertions */
-#undef NDEBUG
-#include <assert.h>
-#define lua_assert(c)           assert(c)
+#define LUAI_ASSERT
 
 
 
diff --git a/makefile b/makefile
index ecc4291..7af5533 100644
--- a/makefile
+++ b/makefile
@@ -38,6 +38,7 @@
 CWARNS= $(CWARNSCPP) $(CWARNSC)
 
 # Some useful compiler options for internal tests:
+# -DLUAI_ASSERT turns on all assertions inside Lua.
 # -DHARDSTACKTESTS forces a reallocation of the stack at every point where
 # the stack can be reallocated.
 # -DHARDMEMTESTS forces a full collection at all points where the collector