diff --git a/Makefile b/Makefile
index 3f01fccd2af444aafdf8e2c1865376a4bfeb2f85..db7fd88bdbc2089dcfcbcac6852e4093a9583046 100644
--- a/Makefile
+++ b/Makefile
@@ -3533,7 +3533,7 @@ clobber:	clean
 	@rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL)
 	@rm -f $(obj)tools/{crc32.c,env_embedded.c,env/crc32.c,md5.c,sha1.c,inca-swap-bytes}
 	@rm -f $(obj)tools/{image.c,fdt.c,fdt_ro.c,fdt_rw.c,fdt_strerror.c}
-	@rm -f $(obj)tools/{fdt_wip.c,libfdt_internal.h}
+	@rm -f $(obj)tools/{fdt_wip.c}
 	@rm -f $(obj)cpu/mpc824x/bedbug_603e.c
 	@rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
 	@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
diff --git a/tools/.gitignore b/tools/.gitignore
index c2ac0aefb557943f290435efee9bfd7b48f6ba03..ea39027ba27ef7a553c4ca7b179010f7a707b0e5 100644
--- a/tools/.gitignore
+++ b/tools/.gitignore
@@ -17,4 +17,3 @@
 /fdt_rw.c
 /fdt_strerror.c
 /fdt_wip.c
-/libfdt_internal.h
diff --git a/tools/Makefile b/tools/Makefile
index 037f61b50047d15999bc92a829614a4f956e6861..294d3883c2d59dd5a8c0d593a361bf0b7a317ef8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -136,6 +136,7 @@ LIBFDT_OBJS	:= $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y))
 CPPFLAGS   = -idirafter $(SRCTREE)/include \
 		-idirafter $(OBJTREE)/include2 \
 		-idirafter $(OBJTREE)/include \
+	        -I $(SRCTREE)/libfdt \
 		-I $(SRCTREE)/tools \
 		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
 CFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
@@ -274,30 +275,26 @@ $(obj)image.c:
 	@rm -f $(obj)image.c
 	ln -s $(src)../common/image.c $(obj)image.c
 
-$(obj)fdt.c:	$(obj)libfdt_internal.h
+$(obj)fdt.c: $(SRCTREE)/libfdt/libfdt_internal.h
 	@rm -f $(obj)fdt.c
 	ln -s $(src)../libfdt/fdt.c $(obj)fdt.c
 
-$(obj)fdt_ro.c:	$(obj)libfdt_internal.h
+$(obj)fdt_ro.c: $(SRCTREE)/libfdt/libfdt_internal.h
 	@rm -f $(obj)fdt_ro.c
 	ln -s $(src)../libfdt/fdt_ro.c $(obj)fdt_ro.c
 
-$(obj)fdt_rw.c:	$(obj)libfdt_internal.h
+$(obj)fdt_rw.c: $(SRCTREE)/libfdt/libfdt_internal.h
 	@rm -f $(obj)fdt_rw.c
 	ln -s $(src)../libfdt/fdt_rw.c $(obj)fdt_rw.c
 
-$(obj)fdt_strerror.c:	$(obj)libfdt_internal.h
+$(obj)fdt_strerror.c: $(SRCTREE)/libfdt/libfdt_internal.h
 	@rm -f $(obj)fdt_strerror.c
 	ln -s $(src)../libfdt/fdt_strerror.c $(obj)fdt_strerror.c
 
-$(obj)fdt_wip.c:	$(obj)libfdt_internal.h
+$(obj)fdt_wip.c: $(SRCTREE)/libfdt/libfdt_internal.h
 	@rm -f $(obj)fdt_wip.c
 	ln -s $(src)../libfdt/fdt_wip.c $(obj)fdt_wip.c
 
-$(obj)libfdt_internal.h:
-	@rm -f $(obj)libfdt_internal.h
-	ln -s $(src)../libfdt/libfdt_internal.h $(obj)libfdt_internal.h
-
 $(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
 	$(obj)./bmp_logo $(LOGO_BMP) >$@