diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 18e5261..b6db687 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -19,6 +19,11 @@
 
 The following volunteers have contributed code, documentation, testing and/or support to the Apache Edgent(incubating).
 
+Apache Edgent(incubating) 1.3.0
+---------------------
+Dale LaBossiere
+Christofer Dutz
+
 Apache Edgent(incubating) 1.2.0
 ---------------------
 Christofer Dutz
diff --git a/buildTools/begin_release.sh b/buildTools/begin_release.sh
index 8847b40..04ad269 100755
--- a/buildTools/begin_release.sh
+++ b/buildTools/begin_release.sh
@@ -37,7 +37,7 @@
 
 MK_CLONE=
 if [ "$1" == "--createClone" ]; then
-  MK_CLONE=1
+  MK_CLONE=1; shift
 fi
 
 requireArg "$@"
diff --git a/buildTools/stage_release_candidate.sh b/buildTools/stage_release_candidate.sh
index da20d92..fc6f18c 100755
--- a/buildTools/stage_release_candidate.sh
+++ b/buildTools/stage_release_candidate.sh
@@ -67,7 +67,7 @@
 # with the switch to the maven release plugin, only the .asc file
 # is generated, not the checksum files.
 # generate/update them now.
-${BUILDTOOLS_DIR}/make_checksums.sh target
+${BUILDTOOLS_DIR}/make_checksums.sh ${BUNDLE_DIR}
 
 # Offer to do svn checkout if needed
 if [ ! -d ${SVN_DEV_EDGENT}/.svn ]; then
@@ -89,6 +89,10 @@
 echo
 confirm "Is the svn status ok to continue (blank / nothing reported) ?" || exit
 
+echo ""
+echo "Updating KEYS..."
+(set -x; svn update ${SVN_DEV_EDGENT}/KEYS)
+
 # Create this structure in the Edgent dev svn tree
 #
 # KEYS
diff --git a/src/site/asciidoc/releasing.adoc b/src/site/asciidoc/releasing.adoc
index e91fb8c..144e732 100644
--- a/src/site/asciidoc/releasing.adoc
+++ b/src/site/asciidoc/releasing.adoc
@@ -75,8 +75,8 @@
 
 Create the clone:
 
-    git clone https://git-wip-us.apache.org/repos/asf/incubator-edgent.git mgmt-edgent
-    cd mgmt-edgent
+    git clone https://git-wip-us.apache.org/repos/asf/incubator-edgent.git mgmt-edgent-1.2.0
+    cd mgmt-edgent-1.2.0
 
 == Create the Release Branch
 
@@ -112,6 +112,10 @@
 Prepare the release branch:
 
     git checkout release/1.2  # the branch from "Creating the Release Branch"
+    
+    # Hmm... does -DskipTests work with the following?  Tests take a long
+    # time and normally one will go through it again in the Perform step.
+    
     mvn release:prepare -DreleaseVersion=1.2.0 -Dtag=edgent-1.2.0 -DdevelopmentVersion=1.2.1-SNAPSHOT -DautoVersionSubmodules=true -P platform-android,platform-java7,distribution 
     
     git status  # should report nothing ahead/behind. Do 'git push' if needed.
@@ -136,9 +140,13 @@
 Create the release candidate:
 
     git checkout release/1.2  # the branch from "Creating the release branch"
+    
+    # Hmm... does -DskipTests work with the following?  Tests take a long
+    # time and normally one has just gone through them all in the Prepare step.
+    
     mvn release:perform -DreleaseProfiles=platform-android,platform-java7
 
-After this step is successful, a Nexus staging repository named `apacheedgent-####` will have been created at at https://repository.apache.org and populated with all of the release candidate's artifacts. The last four digits are generated by Nexus.
+After this step is successful, a Nexus staging repository named `orgapacheedgent-####` will have been created at at https://repository.apache.org and populated with all of the release candidate's artifacts. The last four digits are generated by Nexus.
 
 === Unwanted Staged Artifacts
 
@@ -147,6 +155,8 @@
 TODO: what's needed to manually delete these? "Delete" each via the UI?
 What about the state of the metadata artifacts, do they reference those deleted items?
 
+Minimally, log into Nexus and select the staging repository as described below in `Close the Staging Repository`, and manually select and delete the various `source-release` files in `org/apache/edgent/edgent-parent` using the browser UI.
+
 === Nexus Authentication Setup
 
 To stage artifacts in Nexus, you must setup your maven settings.xml file with information needed to log into the Nexus server - the server's IDs and your Apache ID/pw.  Try using your password in the clear before attempting to use the encrypted password scheme.  See http://maven.apache.org/plugins/maven-deploy-plugin/usage.html.
@@ -177,7 +187,7 @@
 
     login to https://repository.apache.org/  with your Apache credentials
     select "Staging Repositories" in the section "Build Promotion"
-    click on the apacheedgent-#### staging repository
+    click on the orgapacheedgent-#### staging repository
     click on the Close button
 
 A number of pre-configured tests are executed automatically:
@@ -185,6 +195,8 @@
 * Validate the signatures
 * Validate the checksums
 
+In the browser, select the now closed staging repository and a URL for browing the repository is provided on the repository's `Summary` tab.  Note this value as you will want to provide it in Release Candidate voting instructions.
+
 If another artifact is subsequently uploaded for an Edgent groupId, Nexus will create a new staging repository.
 
 == Stage the Source Release Artifacts
@@ -192,6 +204,10 @@
 See the Release Manager's Guide for staging the release candidate's source release
 artifacts to the ASF release staging repository https://dist.apache.org/repos/dist/dev/incubator/edgent.
 
+== Do the Release Candidate Voting
+
+See the Release Manager's Guide for the vote process and info.  Once the vote is complete the Guide will direct you back here to continue.
+
 == Actions if the vote passed
 
 If the vote passed and the staged release candidate should be officially released.
@@ -199,7 +215,7 @@
 Officially release the Nexus staging repository:
 
     login to https://repository.apache.org/  with your Apache credentials
-    select the apacheedgent-#### staging repository
+    select the orgapacheedgent-#### staging repository
     click on the Release button
 
 After this Nexus takes care of all further steps of copying the artifacts to the official release repository, syncing that to Maven central, removing the old staging repository and even cleanup the `SNAPSHOT` versions of the release in the snapshot repo.
@@ -218,7 +234,7 @@
 Drop the Nexus staging repository:
 
     login to https://repository.apache.org/  with your Apache credentials
-    select the apacheedgent-#### staging repository
+    select the orgapacheedgent-#### staging repository
     click on the Drop button
 
 Remove the release tag:
@@ -236,16 +252,17 @@
 
 Here's what you'll need to delete/undo:
 
-* remove the release tag locally and remotely (see `Actions if the vote failed`)
+* remove the release tag locally and remotely - see `Actions if the vote failed`
 * remove the release branch locally and remotely
 * backup the head of the develop branch to undo the `release:branch` commits
 
 Remove the release branch locally and remotely (be sure :-)
 
+    git checkout develop
     git push --delete origin <branch-name>  # remote
     git branch -D <branch-name>             # local
     
-NOTE: See INFRA-15777 for an ASF / GitHub sync bug that doesn't push branch deletions to the mirrored repo.
+NOTE: It appears that the ASF / GitHub sync processing now successfully propagates the branch deletion (INFRA-15777).
     
 WARNING: before backing up the head of the develop branch be sure to verify that undesired commits are the latest commits there and verify the number of them!
 E.g., review https://github.com/apache/incubator-edgent/commits/develop
@@ -257,6 +274,7 @@
 
     git checkout develop
     git pull                # ensure up to date
+    git show pom.xml		# verify the commit matches the one above
     git reset --hard HEAD^  # the "prepare for the next..." one
     git reset --hard HEAD^  # the "prepare branch ..." one
     git push   #  think you'll need to add --force
