diff --git a/Config.in b/Config.in
index 95b9a4bc82aff91a89c5036e34f3a2a0ce688f00..2e86d02cf55ce01f43efeac05fff2289e149b7fa 100644
--- a/Config.in
+++ b/Config.in
@@ -159,6 +159,26 @@ config EXTERNAL_KERNEL_TREE
 	prompt "Use external kernel tree" if BUILDOPTS
 	default ""
 
+config KERNEL_GIT_CLONE_URI
+	string
+	prompt "Enter git repository to clone" if BUILDOPTS
+	default ""
+	help 
+		Enter the full git repository path i.e.:
+		git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+		This will create a git clone of the kernel in your build
+		directory.
+		
+
+config KERNEL_GIT_LOCAL_REPOSITORY
+	string
+	prompt "Enter path to local reference repository" if BUILDOPTS
+	default ""
+	help
+		Enter a full pathname to a local reference git repository.
+		In this instance, the --refererence option of git clone will
+		be used thus creating a quick local clone of your repo.
+
 source "toolchain/Config.in"
 
 source "target/imagebuilder/Config.in"
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index 90761bf014944177854a1c914931665022de166d..46f7e000460e3431762456593a39141c0ccc855c 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -34,19 +34,31 @@ endif
 # defined in quilt.mk
 Kernel/Patch:=$(Kernel/Patch/Default)
 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
-define Kernel/Prepare/Default
+  ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
+    define Kernel/Prepare/Default
 	bzcat $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS)
 	$(Kernel/Patch)
 	touch $(LINUX_DIR)/.quilt_used
-endef
-else
+    endef
+  else
+    ifeq ($(strip $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY)),"")
 define Kernel/Prepare/Default
+	git clone $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR)
+    endef
+  else
+    define Kernel/Prepare/Default
+	git clone --reference $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY) $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) 
+    endef
+  endif
+endif
+else
+  define Kernel/Prepare/Default
 	mkdir -p $(KERNEL_BUILD_DIR)
 	if [ -d $(LINUX_DIR) ]; then \
 		rmdir $(LINUX_DIR); \
 	fi
 	ln -s $(CONFIG_EXTERNAL_KERNEL_TREE) $(LINUX_DIR)
-endef
+  endef
 endif
 
 ifeq ($(KERNEL),2.6)