diff --git a/vsphere/virtual_machine_config_structure.go b/vsphere/virtual_machine_config_structure.go
index <HASH>..<HASH> 100644
--- a/vsphere/virtual_machine_config_structure.go
+++ b/vsphere/virtual_machine_config_structure.go
@@ -628,7 +628,9 @@ func expandVAppConfig(d *schema.ResourceData, client *govmomi.Client) (*types.Vm
 	if newVApps != nil && len(newVApps) > 0 && newVApps[0] != nil {
 		newVApp := newVApps[0].(map[string]interface{})
 		if props, ok := newVApp["properties"].(map[string]interface{}); ok {
-			newMap = props
+			for k, v := range props {
+				newMap[k] = v
+			}
 		}
 	}
Fix missing vapp properties

Due to the way maps behave in goland we ended up removing data from the
original map holding the vapp properties. The consequence was that if
expandVAppConfig was called more than once, we'd end up effectively
emptying the vapp properties map.