diff --git a/src/datastore_mad/remotes/vmfs/mkfs b/src/datastore_mad/remotes/vmfs/mkfs
index 2afba4dd8b..63a6784738 100755
--- a/src/datastore_mad/remotes/vmfs/mkfs
+++ b/src/datastore_mad/remotes/vmfs/mkfs
@@ -95,7 +95,7 @@ IMAGE_FORMAT=vmdk
 VMWARE_DISK_TYPE=`echo $FSTYPE|cut -d'_' -f 2`
 
 if [ "$USE_SSH" == "yes" ]; then    
-    $SSH $DST_HOST $VMKFSTOOLS -U [$DS_ID]$DST_FOLDER/disk.vmdk
+    $SSH $DST_HOST $VMKFSTOOLS -U [$DS_ID]$DST_FOLDER/disk.vmdk &> /dev/null
     ssh_exec_and_log $DST_HOST "$VMKFSTOOLS -c ${SIZE}M -d ${VMWARE_DISK_TYPE} /vmfs/volumes/$DS_ID/$DST_FOLDER/disk.vmdk" \
                                "Cannot create [$DS_ID] $DST_FOLDER/disk.vmdk on $DST_HOST"
 else
diff --git a/src/mad/sh/scripts_common.sh b/src/mad/sh/scripts_common.sh
index 28cbca0d4e..74ae5eb7e9 100644
--- a/src/mad/sh/scripts_common.sh
+++ b/src/mad/sh/scripts_common.sh
@@ -410,7 +410,7 @@ function iqn_get_host {
     echo ${TARGET%%.$VG_NAME.$LV_NAME}
 }
 
-function vmfs_crate_remote_path {
+function vmfs_create_remote_path {
     DS_ID=$1
     # Create DST in DST_HOST
     if [ "$USE_SSH" == "yes" ]; then
@@ -433,3 +433,13 @@ function vmfs_set_up {
         fi
     fi
 }
+
+function vmfs_create_double_path {
+    DS_ID=$1
+    FIRST_FOLDER=$2
+    SECOND_FOLDER=$3
+    # Two calls needed since vifs cannot do a mkdir -p
+    vifs $VI_PARAMS --force --mkdir [$DS_ID]$FIRST_FOLDER &> /dev/null
+    vifs $VI_PARAMS --force --mkdir [$DS_ID]$FIRST_FOLDER/$SECOND_FOLDER &> /dev/null
+
+}
diff --git a/src/tm_mad/vmfs/clone b/src/tm_mad/vmfs/clone
index e24000425e..c5ec706223 100755
--- a/src/tm_mad/vmfs/clone
+++ b/src/tm_mad/vmfs/clone
@@ -53,19 +53,13 @@ DST_DIR=`dirname $DST_PATH`
 DST_FOLDER=`basename $DST_PATH`
 IMAGE_DS_NAME=`basename $(dirname $SRC_PATH)`
 SYSTEM_DS_NAME=`basename $(dirname $(dirname $DST_PATH))`
-
 USE_SSH=$(get_tm_use_ssh $IMAGE_DS_NAME)
 
-if [ "$USE_SSH" != "yes" ]; then
-    USERNAME=`echo $(cat $VMWARERC |grep ":username:"|cut -d":" -f 3|tr -d '"')`
-    PASSWORD=`echo $(cat $VMWARERC |grep ":password:"|cut -d":" -f 3|tr -d '"')`
+#-------------------------------------------------------------------------------
+# Set up datastore
+#-------------------------------------------------------------------------------
 
-    if [ -z $PASSWORD ]; then
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password \"\""
-    else
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password $PASSWORD"
-    fi
-fi
+vmfs_set_up
 
 #-------------------------------------------------------------------------------
 # Create remote folder
@@ -74,9 +68,7 @@ fi
 if [ "$USE_SSH" == "yes" ]; then
 	ssh_make_path $DST_HOST $DST_PATH
 else
-	# Two calls needed since vifs cannot do a mkdir -p
-	vifs $VI_PARAMS --force --mkdir [$SYSTEM_DS_NAME]$VMID &> /dev/null
-	vifs $VI_PARAMS --force --mkdir [$SYSTEM_DS_NAME]$VMID/$DST_FOLDER &> /dev/null
+  vmfs_create_double_path $SYSTEM_DS_NAME $VMID $DST_FOLDER
 fi
 
 #-------------------------------------------------------------------------------
diff --git a/src/tm_mad/vmfs/context b/src/tm_mad/vmfs/context
index 7312189db6..48b8500218 100755
--- a/src/tm_mad/vmfs/context
+++ b/src/tm_mad/vmfs/context
@@ -48,18 +48,13 @@ DST_PATH=`arg_path $DST`
 DST_HOST=`arg_host $DST`
 DST_DIR=`dirname $DST_PATH`
 DST_FOLDER=`basename $DST_PATH`
-
 USE_SSH=$(get_tm_use_ssh $DS_ID)
 
-if [ "$USE_SSH" != "yes" ]; then
-    USERNAME=`echo $(cat $VMWARERC |grep ":username:"|cut -d":" -f 3|tr -d '"')`
-    PASSWORD=`echo $(cat $VMWARERC |grep ":password:"|cut -d":" -f 3|tr -d '"')`
-    if [ -z $PASSWORD ]; then       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password \"\""    
-    else       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password $PASSWORD"    
-    fi
-fi
+#-------------------------------------------------------------------------------
+# Set up datastore
+#-------------------------------------------------------------------------------
+
+vmfs_set_up
 
 #-------------------------------------------------------------------------------
 # Create remote folder
@@ -68,8 +63,7 @@ fi
 if [ "$USE_SSH" == "yes" ]; then
     ssh_make_path $DST_HOST $DST_DIR
 else
-    vifs $VI_PARAMS --mkdir [$DS_ID]$VM_ID
-    vifs $VI_PARAMS --mkdir [$DS_ID]$VM_ID/$DST_FOLDER
+    vmfs_create_double_path $DS_ID $VM_ID $DST_FOLDER
 fi
 
 #-------------------------------------------------------------------------------
diff --git a/src/tm_mad/vmfs/delete b/src/tm_mad/vmfs/delete
index b7565993ea..0a7293f27c 100755
--- a/src/tm_mad/vmfs/delete
+++ b/src/tm_mad/vmfs/delete
@@ -47,6 +47,12 @@ source $(dirname $0)/tm_vmfs.conf
 
 USE_SSH=$(get_tm_use_ssh $DSID)
 
+#-------------------------------------------------------------------------------
+# Set up datastore
+#-------------------------------------------------------------------------------
+
+vmfs_set_up
+
 #-------------------------------------------------------------------------------
 # Return if deleting a disk, we will delete them when removing the 
 # remote_system_ds directory for the VM (remotely)
@@ -63,14 +69,6 @@ log "Deleting $DST_PATH"
 if [ "$USE_SSH" == "yes" ]; then
 	ssh_exec_and_log $DST_HOST "rm -rf $DST_PATH" "Error deleting $DST_PATH"
 else
-	USERNAME=`echo $(cat $VMWARERC |grep ":username:"|cut -d":" -f 3|tr -d '"')`
-	PASSWORD=`echo $(cat $VMWARERC |grep ":password:"|cut -d":" -f 3|tr -d '"')`
-    if [ -z $PASSWORD ]; then       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password \"\""    
-    else       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password $PASSWORD"    
-    fi
-
 	DIRS_TO_ERASE=`vifs $VI_PARAMS --dir [$DSID]$VMID|grep -v "Content Listing"|grep -v "\-\-\-\-\-\-\-\-"|egrep -v "^[[:space:]]*$"`
 	for dir in $DIRS_TO_ERASE; do
 		FILES_TO_ERASE=`vifs $VI_PARAMS --dir [$DSID]$VMID/$dir|grep -v "Content Listing"|grep -v "\-\-\-\-\-\-\-\-"|egrep -v "^[[:space:]]*$"`
@@ -83,7 +81,6 @@ else
 	done
 	exec_and_log "vifs $VI_PARAMS --force --rm [$DSID]$VMID" \
              "Cannot delete [$DSID]$VMID in $DST_HOST"
-
 fi
 
 exit 0
diff --git a/src/tm_mad/vmfs/mkimage b/src/tm_mad/vmfs/mkimage
index 711f6b1fd2..339eec878e 100755
--- a/src/tm_mad/vmfs/mkimage
+++ b/src/tm_mad/vmfs/mkimage
@@ -51,17 +51,13 @@ DST_DIR=`dirname $DST_PATH`
 DST_FOLDER=`basename $DST_PATH`
 
 USE_SSH=$(get_tm_use_ssh $DSID)
+SYSTEM_DS_NAME=`basename $(dirname $(dirname $DST_PATH))`
 
-if [ "$USE_SSH" != "yes" ]; then
-    SYSTEM_DS_NAME=`basename $(dirname $(dirname $DST_PATH))`
-    USERNAME=`echo $(cat $VMWARERC |grep ":username:"|cut -d":" -f 3|tr -d '"')`
-    PASSWORD=`echo $(cat $VMWARERC |grep ":password:"|cut -d":" -f 3|tr -d '"')`
-    if [ -z $PASSWORD ]; then       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password \"\""    
-    else       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password $PASSWORD"    
-    fi
-fi
+#-------------------------------------------------------------------------------
+# Set up datastore
+#-------------------------------------------------------------------------------
+
+vmfs_set_up
 
 #-------------------------------------------------------------------------------
 # Make the new image (file-based)
@@ -82,9 +78,7 @@ EOF
 
     ssh_exec_and_log $DST_HOST "$MKSCRIPT" "Could not create image $DST_PATH"
 else
-    # Two calls needed since vifs cannot do a mkdir -p
-    vifs $VI_PARAMS --mkdir [$SYSTEM_DS_NAME]$VMID
-    vifs $VI_PARAMS --mkdir [$SYSTEM_DS_NAME]$VMID/$DST_FOLDER
+    vmfs_create_double_path $SYSTEM_DS_NAME $VMID $DST_FOLDER
 
     VMWARE_DISK_TYPE=`echo $FSTYPE|cut -d'_' -f 2`
     $VMKFSTOOLS $VI_PARAMS -U [$SYSTEM_DS_NAME]$VMID/$DST_FOLDER/disk.vmdk &> /dev/null
diff --git a/src/tm_mad/vmfs/mvds b/src/tm_mad/vmfs/mvds
index dc96f61c23..a89f8d606a 100755
--- a/src/tm_mad/vmfs/mvds
+++ b/src/tm_mad/vmfs/mvds
@@ -55,17 +55,14 @@ DST_FOLDER=`basename $DST_PATH`
 
 USE_SSH=$(get_tm_use_ssh $DSID)
 
-if [ "$USE_SSH" != "yes" ]; then
-	IMAGE_DS_NAME=`basename $(dirname $DST_PATH)`
-    SYSTEM_DS_NAME=`basename $(dirname $(dirname $SRC_PATH))`
-    USERNAME=`echo $(cat $VMWARERC |grep ":username:"|cut -d":" -f 3|tr -d '"')`
-    PASSWORD=`echo $(cat $VMWARERC |grep ":password:"|cut -d":" -f 3|tr -d '"')`
-    if [ -z $PASSWORD ]; then       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password \"\""    
-    else       
-        VI_PARAMS="--server $DST_HOST --username $USERNAME --password $PASSWORD"    
-    fi
-fi
+IMAGE_DS_NAME=`basename $(dirname $DST_PATH)`
+SYSTEM_DS_NAME=`basename $(dirname $(dirname $SRC_PATH))`
+
+#-------------------------------------------------------------------------------
+# Set up datastore
+#-------------------------------------------------------------------------------
+
+vmfs_set_up
 
 #-------------------------------------------------------------------------------
 # Move the image back to the datastore