diff --git a/doc/changes.html b/doc/changes.html
index fc299864..43c1f84e 100644
--- a/doc/changes.html
+++ b/doc/changes.html
@@ -69,6 +69,79 @@ to see whether newer versions are available.
+
LuaJIT 2.0.0-beta9 — 2011-12-14
+
+- New features:
+
+- PPC port of LuaJIT is complete. Default is the dual-number port
+(usually faster). Single-number port selectable via src/Makefile
+at build time.
+- Add FFI callback support.
+- Extend -b to generate .c, .h or .obj/.o
+files with embedded bytecode.
+- Allow loading embedded bytecode with require().
+- From Lua 5.2: Change to '\z' escape. Reject undefined escape
+sequences.
+
+- Correctness and completeness:
+
+- Fix OSX 10.7 build. Fix install_name and versioning on OSX.
+- Fix iOS build.
+- Install dis_arm.lua, too.
+- Mark installed shared library as executable.
+- Add debug option to msvcbuild.bat and improve error handling.
+- Fix data-flow analysis for iterators.
+- Fix forced unwinding triggered by external unwinder.
+- Record missing for loop slot loads (return to lower frame).
+- Always use ANSI variants of Windows system functions.
+- Fix GC barrier for multi-result table constructor (TSETM).
+- Fix/add various FOLD rules.
+- Add potential PHI for number conversions due to type instability.
+- Do not eliminate PHIs only referenced from other PHIs.
+- Correctly anchor implicit number to string conversions in Lua/C API.
+- Fix various stack limit checks.
+- x64: Use thread-safe exceptions for external unwinding (GCC platforms).
+- x64: Fix result type of cdata index conversions.
+- x64: Fix math.random() and bit.bswap() code generation.
+- x64: Fix lightuserdata comparisons.
+- x64: Always extend stack-passed arguments to pointer size.
+- ARM: Many fixes to code generation backend.
+- PPC/e500: Fix dispatch for binop metamethods.
+- PPC/e500: Save/restore condition registers when entering/leaving the VM.
+- PPC/e500: Fix write barrier in stores of strings to upvalues.
+
+- FFI library:
+
+- Fix C comment parsing.
+- Fix snapshot optimization for cdata comparisons.
+- Fix recording of const/enum lookups in namespaces.
+- Fix call argument and return handling for I8/U8/I16/U16 types.
+- Fix unfused loads of float fields.
+- Fix ffi.string() recording.
+- Save GetLastError() around ffi.load() and symbol
+resolving, too.
+- Improve ld script detection in ffi.load().
+- Record loads/stores to external variables in namespaces.
+- Compile calls to stdcall, fastcall and vararg functions.
+- Treat function ctypes like pointers in comparisons.
+- Resolve __call metamethod for pointers, too.
+- Record C function calls with bool return values.
+- Record ffi.errno().
+- x86: Fix number to uint32_t conversion rounding.
+- x86: Fix 64 bit arithmetic in assembler backend.
+- x64: Fix struct-by-value calling conventions.
+- ARM: Ensure invocation of SPLIT pass for float conversions.
+
+- Structural and performance enhancements:
+
+- Display trace types with -jv and -jdump.
+- Record isolated calls. But prefer recording loops over calls.
+- Specialize to prototype for non-monomorphic functions. Solves the
+trace-explosion problem for closure-heavy programming styles.
+- Always generate a portable vmdef.lua. Easier for distros.
+
+
+
LuaJIT 2.0.0-beta8 — 2011-06-23