diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index 310c1de3fe5957accb1287d627dfc49d0c0cf0bd..8bb885d4c9b70b780b04f5fd9c7f0e0e1852593c 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -620,7 +620,12 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	bd = gd->bd;
 
 	gd->flags |= GD_FLG_RELOC;	/* tell others: relocation done */
+
+#if defined(CONFIG_RELOC_FIXUP_WORKS)
+	gd->reloc_off = 0;
+#else
 	gd->reloc_off = dest_addr - CFG_MONITOR_BASE;
+#endif
 
 #ifdef CONFIG_SERIAL_MULTI
 	serial_initialize();