diff --git a/ChangeLog b/ChangeLog
index 334c8b5a8cc98127bb28e6bf39c3ccc3c31f4c58..d5748c825b61acbe624be350948cda2a48840d7f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-01-13	The InnoDB Team
+
+	* buf/buf0buf.c:
+	When disabling the adaptive hash index, check the block state
+	before checking block->is_hashed, because the latter may be
+	uninitialized right after server startup.
+
 2010-01-12	The InnoDB Team
 
 	* handler/ha_innodb.cc, handler/ha_innodb.h:
diff --git a/buf/buf0buf.c b/buf/buf0buf.c
index 111d396fbc5e367fd18c0d837b55e4bc6fb2fda5..549d1a31942fd060b8e691052d4829591f2a26ce 100644
--- a/buf/buf0buf.c
+++ b/buf/buf0buf.c
@@ -1058,7 +1058,9 @@ buf_pool_drop_hash_index(void)
 				when we have an x-latch on btr_search_latch;
 				see the comment in buf0buf.h */
 
-				if (!block->is_hashed) {
+				if (buf_block_get_state(block)
+				    != BUF_BLOCK_FILE_PAGE
+				    || !block->is_hashed) {
 					continue;
 				}