diff --git a/create-cumulusvx-image/create-cumulus-vx-image.sh b/create-cumulusvx-image/create-cumulus-vx-image.sh
index 1946199a824f2b2de07f5eb1ba66010dd05e8bf6..c77a5d4ac040b632d99128599abf3996e21f69e4 100644
--- a/create-cumulusvx-image/create-cumulus-vx-image.sh
+++ b/create-cumulusvx-image/create-cumulus-vx-image.sh
@@ -27,12 +27,37 @@ GLANCE_IMAGE_RELEASE=$CUMULUS_QCOW2_BASENAME
 TMP_NAME="CumulusVX-$GLANCE_IMAGE_RELEASE"
 TIMESTAMP=$(date +%Y%m%d%H%M%S)
 
-CHECK_FOR_EXISTING_IMAGE=$(glance image-show CumulusVX | grep name | grep CumulusVX)
-if [ $? == 0 ]; then
-  echo "Deleting existing image $2..."
-  echo "==========================================================="
-  
-  glance image-delete $2
+function safe_unmount() {
+  echo -n "Unmounting $1..."
+  RETRY=0
+  until umount $1 &>/dev/null
+  do
+    echo -n "."
+    sleep 1
+    RETRY=$((RETRY+1))
+    if [ "$RETRY" -ge "5" ] ; then
+      echo
+      echo "ERROR: unable to unmount working directory $1"
+      exit 1
+    fi
+  done
+  echo
+  return 0
+}
+
+# check for an existing image with the same name and offer to delete it prior to creating a new one
+CHECK_FOR_EXISTING_IMAGE=$(glance image-show CumulusVX 2>&1)
+if [ $? == 0 ] ; then
+  read -r -p "There is already an image with the same name in glance. Do you want to overwrite it? [y/N] " RESPONSE
+  if [[ $RESPONSE =~ ^([yY][eE][sS]|[yY])$ ]] ; then
+    echo "Deleting existing image $2..."
+    echo "==========================================================="
+
+    glance image-delete $2
+  else
+    echo "An image with the same name already exists. Either delete this image or choose another name."
+    exit 1
+  fi
 fi
 
 echo
@@ -57,6 +82,7 @@ mount /dev/mapper/$LOOPDEV_PART2 cumulusvx-root-$TIMESTAMP
 sed -i.bak -e s/"linux \/bzImage root=\/dev\/sda2"/"linux \/bzImage root=\/dev\/sda2 console=ttyS0 console=tty0"/g cumulusvx-root-$TIMESTAMP/vbox_grub.cfg
 sed -i.bak -e s/"linux \/bzImage root=\/dev\/sda2"/"linux \/bzImage root=\/dev\/sda2 console=ttyS0 console=tty0"/g cumulusvx-boot-$TIMESTAMP/grub/grub.cfg
 sed -i.bak -e s/"# S0:3:respawn:\/sbin\/getty -L \$(get-cmdline-console) vt100"/"S0:3:respawn:\/sbin\/getty -L \$(get-cmdline-console) vt100"/g cumulusvx-root-$TIMESTAMP/etc/inittab
+# append a script to import the configuration defined in VM Maestro to rc.local
 sed -i.bak -e s/"^exit 0$"/""/g cumulusvx-root-$TIMESTAMP/etc/rc.local
 cat << EOF >> cumulusvx-root-$TIMESTAMP/etc/rc.local
 mkdir /virl-config
@@ -70,10 +96,9 @@ EOF
 #
 #bash
 
-# inject script to handle dhcp for eth0 and import of config defined in VM Maestro (config-drive)
+safe_unmount cumulusvx-boot-$TIMESTAMP
+safe_unmount cumulusvx-root-$TIMESTAMP
 
-umount cumulusvx-boot-$TIMESTAMP
-umount cumulusvx-root-$TIMESTAMP
 rm -rf cumulusvx-boot-$TIMESTAMP
 rm -rf cumulusvx-root-$TIMESTAMP
 kpartx -d $CUMULUS_QCOW2_BASENAME.raw
@@ -89,8 +114,8 @@ glance image-create --container-format bare --disk-format qcow2 --is-public true
   --file $CUMULUS_PATCHED_QCOW2 --property hw_disk_bus=ide --property serial=1 \
   --property hw_vif_model=e1000 --property hw_cdrom_type=ide --property release="$GLANCE_IMAGE_RELEASE" --property subtype=CumulusVX --property config_disk_type=disk
 
-# create flavor
-CHECKING_FOR_EXISTING_FLAVOR=$(nova flavor-show CumulusVX.small | grep name | grep CumulusVX.small)
+# create default flavor
+CHECKING_FOR_EXISTING_FLAVOR=$(nova flavor-show CumulusVX.small 2>&1)
 if [ $? == 1 ]; then
   echo "Creating default flavor CumulusVX.small..."
   echo "==========================================================="