diff --git a/tempest/scenario/test_network_basic_ops.py b/tempest/scenario/test_network_basic_ops.py
index 700ad3b..085d06a 100644
--- a/tempest/scenario/test_network_basic_ops.py
+++ b/tempest/scenario/test_network_basic_ops.py
@@ -997,3 +997,43 @@
         # Check ping between servers after live migration
         self._check_server_connectivity(self.floating_ip_tuple.floating_ip,
                                         server02_ip, should_connect=True)
+
+    @decorators.idempotent_id('392939d1-2a96-4985-9360-6a222373107a')
+    @testtools.skipUnless(CONF.compute_feature_enabled.live_migration,
+                          'Live migration is not available.')
+    @decorators.attr(type='slow')
+    @utils.services('compute', 'network')
+    def test_live_migrate_vm_with_two_networks(self):
+        """Live migrate a VM with two different networks.
+
+        1. Create server1 with tenant network1 and floating IP
+        2. Check connectivity to server1 via public and private networks
+        3. Create tenant network 2 with server 2
+        4. Attach the new network to the server1
+        5. Check connectivity to server2 from server1
+        6. Live migrate server1
+        7. Check connectivity to server1 via networks 1 and 2
+        8. Check connectivity to server2 from server1
+        """
+
+        self._setup_network_and_servers()
+        server1 = self.servers[0]
+        self._check_public_network_connectivity(should_connect=True)
+        self._check_network_internal_connectivity(network=self.network)
+        self._check_network_external_connectivity()
+        self._create_new_network()
+        new_server = self._create_server(self.new_net)
+        new_server_ips = [addr['addr'] for addr in
+                          new_server['addresses'][self.new_net['name']]]
+
+        # Attach the new network to the server1
+        self._hotplug_server()
+        self._check_server_connectivity(self.floating_ip_tuple.floating_ip,
+                                        new_server_ips, should_connect=True)
+
+        # Live migrate server1 and check connectivity
+        self._live_migrate_server(server=server1)
+        self._check_network_internal_connectivity(network=self.network)
+        self._check_public_network_connectivity(should_connect=True)
+        self._check_server_connectivity(self.floating_ip_tuple.floating_ip,
+                                        new_server_ips, should_connect=True)
