diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/modals/vf-module-homing-data-action/vf-module-homing-data-action.controller.js b/vid-app-common/src/main/webapp/app/vid/scripts/modals/vf-module-homing-data-action/vf-module-homing-data-action.controller.js
index ac6d84f..2cfcf57 100644
--- a/vid-app-common/src/main/webapp/app/vid/scripts/modals/vf-module-homing-data-action/vf-module-homing-data-action.controller.js
+++ b/vid-app-common/src/main/webapp/app/vid/scripts/modals/vf-module-homing-data-action/vf-module-homing-data-action.controller.js
@@ -82,6 +82,7 @@
     $scope.deleteOrResume = function()  {
 
         var msoParameterList = [({id: "lcpRegion", value: $scope.regionSelection.optionId})];
+        msoParameterList.push({id: FIELD.ID.LCP_REGION_TEXT, value: $scope.regionSelection.legacyRegion});
         msoParameterList.push({id: "tenant", value: $scope.regionSelection.tenant});
 
         var requestParams = {};
diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js b/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js
index 1a296ca..9724637 100755
--- a/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js
+++ b/vid-app-common/src/main/webapp/app/vid/scripts/services/creationService.js
@@ -775,20 +775,13 @@
     };
 
     var buildCloudConfiguration = function (parameterList) {
-        var lcpRegion;
-        var cloudOwner;
 
         var lcpRegionOptionId = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
         var cloudOwnerAndLcpCloudRegion = DataService.getCloudOwnerAndLcpCloudRegionFromOptionId(lcpRegionOptionId);
-        if (cloudOwnerAndLcpCloudRegion.cloudRegionId === FIELD.KEY.LCP_REGION_TEXT) {
-            lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
-                parameterList);
-            cloudOwner = undefined;
-        } else {
-            var cloudOwnerAndLcpCloudRegion = DataService.getCloudOwnerAndLcpCloudRegionFromOptionId(lcpRegionOptionId);
-            lcpRegion = cloudOwnerAndLcpCloudRegion.cloudRegionId;
-            cloudOwner = cloudOwnerAndLcpCloudRegion.cloudOwner;
-        }
+        var cloudOwner = cloudOwnerAndLcpCloudRegion.cloudOwner;
+        var lcpRegion = cloudOwnerAndLcpCloudRegion.cloudRegionId === FIELD.KEY.LCP_REGION_TEXT ?
+            getValueFromList(FIELD.ID.LCP_REGION_TEXT,parameterList) :
+            cloudOwnerAndLcpCloudRegion.cloudRegionId;
 
         return {
             lcpCloudRegionId: lcpRegion,
diff --git a/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java b/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java
index 3047388..050aa75 100644
--- a/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java
+++ b/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java
@@ -419,8 +419,7 @@
         SimulatorApi.registerExpectationFromPresets(
                 ImmutableList.of (
                         new PresetAAIGetTenants(),
-                        PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC,
-                        new PresetMSOCreateVfModule(serviceInstanceId,vnfInstanceId, ATT_NC),
+                        new PresetMSOCreateVfModule(serviceInstanceId,vnfInstanceId, DEFAULT_CLOUD_OWNER),
                         new PresetMSOOrchestrationRequestGet(
                                 COMPLETE,
                                 "c0011670-0e1a-4b74-945d-8bf5aede1d9c",
diff --git a/vid-automation/src/main/java/vid/automation/test/test/ALaCarteflowTest.java b/vid-automation/src/main/java/vid/automation/test/test/ALaCarteflowTest.java
index ca8c276..92b01d1 100644
--- a/vid-automation/src/main/java/vid/automation/test/test/ALaCarteflowTest.java
+++ b/vid-automation/src/main/java/vid/automation/test/test/ALaCarteflowTest.java
@@ -1,15 +1,24 @@
 package vid.automation.test.test;
 
+import static org.onap.simulator.presetGenerator.presets.BasePresets.BaseMSOPreset.DEFAULT_CLOUD_OWNER;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.MDT_1;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.PRESET_SOME_LEGACY_REGION_TO_ATT_AIC;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.SOME_LEGACY_REGION;
+import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
+
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
+import java.util.List;
+import java.util.stream.Collectors;
 import org.junit.Assert;
+import org.onap.sdc.ci.tests.datatypes.UserCredentials;
+import org.onap.sdc.ci.tests.utilities.GeneralUIUtils;
 import org.onap.simulator.presetGenerator.presets.BasePresets.BaseMSOPreset;
 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubscribersGet;
 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVfModuleOldViewEdit;
 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVnfALaCarteOldViewEdit;
 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVolumeGroupOldViewEdit;
-import org.onap.sdc.ci.tests.datatypes.UserCredentials;
-import org.onap.sdc.ci.tests.utilities.GeneralUIUtils;
 import org.openqa.selenium.WebElement;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.DataProvider;
@@ -24,12 +33,6 @@
 import vid.automation.test.services.ServicesService;
 import vid.automation.test.services.SimulatorApi;
 
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.*;
-import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
-
 
 public class ALaCarteflowTest extends CreateInstanceDialogBaseTest {
     static final String SUBSCRIBER = "Emanuel";
@@ -84,7 +87,7 @@
                             VNF_ID,
                             vfModuleName,
                             msoTestApiValue,
-                            ATT_NC)),
+                            DEFAULT_CLOUD_OWNER)),
                     SimulatorApi.RegistrationStrategy.APPEND);
 
 
diff --git a/vid-automation/src/main/java/vid/automation/test/test/DeleteResumeTest.java b/vid-automation/src/main/java/vid/automation/test/test/DeleteResumeTest.java
index a334646..c26cdb6 100644
--- a/vid-automation/src/main/java/vid/automation/test/test/DeleteResumeTest.java
+++ b/vid-automation/src/main/java/vid/automation/test/test/DeleteResumeTest.java
@@ -16,7 +16,7 @@
         SimulatorApi.clearAll();
         BulkRegistration.resumeVfModule(serviceInstanceId,vnfInstanceId);
         navigateToViewEditPageOfuspVoiceVidTest444("240376de-870e-48df-915a-31f140eedd2c");
-        resumeVFModule("aa","AAIAIC25", "AIC", "092eb9e8e4b7412e8787dd091bc58e86","mdt1",user.tenants);
+        resumeVFModule("aa","AAIAIC25", "AIC", "092eb9e8e4b7412e8787dd091bc58e86","hvf6",user.tenants);
     }
 
-}
\ No newline at end of file
+}
