diff --git a/arch/x86/lib/board.c b/arch/x86/lib/board.c
index b64c2d3ca385ba0db8c27ff72b517578bb2b8ddf..3d82165af30fff40a242cb4d8bcfec0342d29796 100644
--- a/arch/x86/lib/board.c
+++ b/arch/x86/lib/board.c
@@ -252,8 +252,6 @@ void board_init_f(ulong boot_flags)
 			hang();
 	}
 
-	gd->flags |= GD_FLG_RELOC;
-
 	/*
 	 * SDRAM is now initialised, U-Boot has been copied into SDRAM,
 	 * the BSS has been cleared etc. The final stack can now be setup
@@ -322,6 +320,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/* compiler optimization barrier needed for GCC >= 3.4 */
 	__asm__ __volatile__("" : : : "memory");
 
+	gd->flags |= GD_FLG_RELOC;
+
 	gd->bd = &bd_data;
 	memset(gd->bd, 0, sizeof(bd_t));
 	show_boot_progress(0x22);