diff -r 7a604b5df9c8 -r 288db3721a37 config/binutils/elf2flt.in
--- a/config/binutils/elf2flt.in	Thu Oct 11 14:39:41 2012 +1000
+++ b/config/binutils/elf2flt.in	Thu Oct 11 14:39:42 2012 +1000
@@ -20,8 +20,26 @@
     bool
     prompt "CVS Snapshot"
 
+config ELF2FLT_CUSTOM
+    bool
+    prompt "Custom elf2flt"
+    depends on EXPERIMENTAL
+
 endchoice
 
+if ELF2FLT_CUSTOM
+
+config ELF2FLT_CUSTOM_LOCATION
+    string
+    prompt "Full path to custom elf2flt source"
+    default ""
+    help
+      Enter the path to the directory (or tarball) of your source for elf2flt,
+      or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/elf2flt
+
+endif # ELF2FLT_CUSTOM
+if ! ELF2FLT_CUSTOM
+
 config ELF2FLT_CVS_SNAPSHOT_SPEC
     string
     depends on ELF2FLT_CVS_SNAPSHOT
@@ -31,9 +49,12 @@
        What you enter here will be passed verbatim to the cvs checkout command
        so be careful!
 
+endif # ! ELF2FLT_CUSTOM
+
 config ELF2FLT_VERSION
     string
-    default "head" if ELF2FLT_CVSHEAD
+    default "cvs" if ELF2FLT_CVSHEAD
+    default "custom" if ELF2FLT_CUSTOM
 # Don't remove next line
 # CT_INSERT_VERSION_STRING_BELOW
 
diff -r 7a604b5df9c8 -r 288db3721a37 scripts/build/binutils/elf2flt.sh
--- a/scripts/build/binutils/elf2flt.sh	Thu Oct 11 14:39:41 2012 +1000
+++ b/scripts/build/binutils/elf2flt.sh	Thu Oct 11 14:39:42 2012 +1000
@@ -13,17 +13,25 @@
 
 # Download elf2flt
 do_elf2flt_get() {
-    CT_GetCVS "elf2flt-cvs-${CT_ELF2FLT_VERSION}"           \
-              ":pserver:anonymous@cvs.uclinux.org:/var/cvs" \
-              "elf2flt"                                     \
-              "" \
-              "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
+    if [ "${CT_ELF2FLT_CUSTOM}" = "y" ]; then
+        CT_GetCustom "elf2flt" "${ELF2FLT_VERSION}" \
+        "${CT_ELF2FLT_CUSTOM_LOCATION}"
+    else
+        CT_GetCVS "elf2flt-${CT_ELF2FLT_VERSION}"           \
+                  ":pserver:anonymous@cvs.uclinux.org:/var/cvs" \
+                  "elf2flt"                                     \
+                  "" \
+                  "elf2flt-${CT_ELF2FLT_VERSION}"
+    fi
 }
 
 # Extract elf2flt
 do_elf2flt_extract() {
-    CT_Extract "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
-    CT_Patch "elf2flt-cvs" "${CT_ELF2FLT_VERSION}"
+    if [ "${CT_ELF2FLT_CUSTOM}" != "y" \
+         -o ! -d "${CT_SRC_DIR}/elf2flt-${CT_ELF2FLT_VERSION}" ]; then
+        CT_Extract "elf2flt-${CT_ELF2FLT_VERSION}"
+    fi
+    CT_Patch "elf2flt" "${CT_ELF2FLT_VERSION}"
 }
 
 # Build elf2flt for build -> target
@@ -111,7 +119,7 @@
     CT_DoLog EXTRA "Configuring elf2flt"
     CT_DoExecLog CFG                                            \
     CFLAGS="${host_cflags}"                                     \
-    "${CT_SRC_DIR}/elf2flt-cvs-${CT_ELF2FLT_VERSION}/configure" \
+    "${CT_SRC_DIR}/elf2flt-${CT_ELF2FLT_VERSION}/configure" \
         --build=${CT_BUILD}                                     \
         --host=${host}                                          \
         --target=${CT_TARGET}                                   \
