diff --git a/CHANGELOG b/CHANGELOG
index baa9537..8e9115e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Fix problem with flash_get_size() from CFI driver update
+  Patch by Stefan Roese, 1 Mar 2006
+
 * Convert mcc200 to use common CFI flash driver
   Patch by Stefan Roese, 28 Feb 2006
 
diff --git a/board/mcc200/mcc200.c b/board/mcc200/mcc200.c
index 4707390..acc0e06 100644
--- a/board/mcc200/mcc200.c
+++ b/board/mcc200/mcc200.c
@@ -38,6 +38,8 @@
 
 extern flash_info_t flash_info[];	/* FLASH chips info */
 
+ulong flash_get_size (ulong base, int banknum);
+
 //###CHD: wenn RAMBOOT gehen wuerde, ....
 #ifndef CFG_RAMBOOT
 static void sdram_start (int hi_addr)
diff --git a/board/tqm85xx/tqm85xx.c b/board/tqm85xx/tqm85xx.c
index b36bead..c03b60d 100644
--- a/board/tqm85xx/tqm85xx.c
+++ b/board/tqm85xx/tqm85xx.c
@@ -40,6 +40,7 @@
 
 void local_bus_init (void);
 long int fixed_sdram (void);
+ulong flash_get_size (ulong base, int banknum);
 
 #ifdef CONFIG_CPM2
 /*
diff --git a/drivers/cfi_flash.c b/drivers/cfi_flash.c
index df17da5..ff4d85f 100644
--- a/drivers/cfi_flash.c
+++ b/drivers/cfi_flash.c
@@ -203,6 +203,7 @@
 static int flash_write_cfiword (flash_info_t * info, ulong dest, cfiword_t cword);
 static int flash_full_status_check (flash_info_t * info, flash_sect_t sector,
 				    ulong tout, char *prompt);
+ulong flash_get_size (ulong base, int banknum);
 #if defined(CFG_ENV_IS_IN_FLASH) || defined(CFG_ENV_ADDR_REDUND) || (CFG_MONITOR_BASE >= CFG_FLASH_BASE)
 static flash_info_t *flash_get_info(ulong base);
 #endif
diff --git a/include/flash.h b/include/flash.h
index 9108723..8493191 100644
--- a/include/flash.h
+++ b/include/flash.h
@@ -80,7 +80,6 @@
 extern int flash_erase	(flash_info_t *, int, int);
 extern int flash_sect_erase (ulong addr_first, ulong addr_last);
 extern int flash_sect_protect (int flag, ulong addr_first, ulong addr_last);
-extern ulong flash_get_size (ulong base, int banknum);
 
 /* common/flash.c */
 extern void flash_protect (int flag, ulong from, ulong to, flash_info_t *info);
