diff --git a/include/asm-arm/global_data.h b/include/asm-arm/global_data.h
index b3c7084352eae61beb8cabd4a79952d11176aaa9..0b6c8171edc7aff8bb7ee3096805364f81cd5e32 100644
--- a/include/asm-arm/global_data.h
+++ b/include/asm-arm/global_data.h
@@ -61,7 +61,7 @@ typedef	struct	global_data {
 #define	GD_FLG_DEVINIT	0x00002		/* Devices have been initialized	*/
 #define	GD_FLG_SILENT	0x00004		/* Silent mode				*/
 
-#define GCC_4_SCREW_GDP 1
+#undef GCC_4_SCREW_GDP
 #ifdef GCC_4_SCREW_GDP
 # define DECLARE_GLOBAL_DATA_PTR     register gd_t* volatile gd asm ("r8");
 #else
diff --git a/lib_arm/board.c b/lib_arm/board.c
index 9c9eb6826e33432f3f4cae9884963260f03a3e40..a420de15e574e0d2a09f7074778b6f846f07b723 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -54,6 +54,8 @@
 #include "../drivers/lan91c96.h"
 #endif
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #if (CONFIG_COMMANDS & CFG_CMD_NAND)
 void nand_init (void);
 #endif
@@ -121,8 +123,6 @@ void *sbrk (ptrdiff_t increment)
 
 static int init_baudrate (void)
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	uchar tmp[64];	/* long enough for environment variables */
 	int i = getenv_r ("baudrate", tmp, sizeof (tmp));
 	gd->bd->bi_baudrate = gd->baudrate = (i > 0)
@@ -157,7 +157,6 @@ static int display_banner (void)
  */
 static int display_dram_config (void)
 {
-	DECLARE_GLOBAL_DATA_PTR;
 	int i;
 
 #ifdef DEBUG
@@ -236,8 +235,6 @@ init_fnc_t *init_sequence[] = {
 
 void start_armboot (void)
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	ulong size;
 	init_fnc_t **init_fnc_ptr;
 	char *s;