diff --git a/README.md b/README.md
index 704113420..864cd0689 100644
--- a/README.md
+++ b/README.md
@@ -202,14 +202,15 @@ possible approach to this would be to label elements as either a "driver",
 - An element that installs and configures Nova might be a bit more complex:
       elements/
          service-nova/
+            source-repository-nova - register a source repository
             pre-install.d/
-               50-my-ppa   - add a PPA
+               50-my-ppa           - add a PPA
             install.d/
-               10-user     - common Nova user accts
-               50-my-pack  - install packages from my PPA
-               60-nova     - install nova and some dependencies
+               10-user             - common Nova user accts
+               50-my-pack          - install packages from my PPA
+               60-nova             - install nova and some dependencies
             first-boot.d/
-               60-nova     - do some post-install config for nova
+               60-nova             - do some post-install config for nova
 
 - In the general case, configuration should probably be handled either by the
   meta-data service (eg, during first-boot.d) or via normal CM tools
@@ -236,6 +237,13 @@ It should be noted that this is merely a naming convention to assist in
 managing elements. Diskimage-builder is not, and should not be, functionally
 dependent upon specific element names.
 
+- diskimage-builder has the ability to retrieve source code for an element and
+  place it into a directory on the target image during the extra-data phase. The
+  default location/branch can then be overridden by the process running
+  diskimage-builder, making it possible to use the same element to track more
+  then one branch of a git repository or to get source for a local cache. See
+  elements/source-repositories/README.md for more information.
+
 Debugging elements
 ------------------
 
diff --git a/elements/source-repositories/README.md b/elements/source-repositories/README.md
index 00916100f..fefa1bfef 100644
--- a/elements/source-repositories/README.md
+++ b/elements/source-repositories/README.md
@@ -26,8 +26,15 @@ diskimage-builder which can change the details registered by the element, these
 for example if you would like diskimage-builder to get ironic from a local
 mirror you could set DIB_REPOLOCATION_ironic=git://localgitserver/ironic.git
 
+Alternatively if you would like to use the keystone element and build an image with
+keystone from a stable branch then you would set DIB_REPOREF_keystone=stable/grizzly
+
 Git sources will be cloned to \<destination\>
 
 Tarballs will be extracted to \<destination\>. Tarballs should contain a
 single topleval directory, regardless of the name of this top level directory
 it will be renamed to \<destination\>
+
+If mulitple elements register a source location with the same <destination>
+then source-repositories will exit with an error. Care should therefore be taken
+to only use elements together that download source to different locations.