diff --git a/src/migration-scripts/nat/5-to-6 b/src/migration-scripts/nat/5-to-6
index de3830582..c83b93d84 100755
--- a/src/migration-scripts/nat/5-to-6
+++ b/src/migration-scripts/nat/5-to-6
@@ -1,62 +1,63 @@
 #!/usr/bin/env python3
 #
 # Copyright (C) 2023 VyOS maintainers and contributors
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 or later as
 # published by the Free Software Foundation.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # T5643: move from 'set nat [source|destination] rule X [inbound-interface|outbound interface] <iface>'
 # to
 # 'set nat [source|destination] rule X [inbound-interface|outbound interface] interface-name <iface>'
 
 from sys import argv,exit
 from vyos.configtree import ConfigTree
 
 if len(argv) < 2:
     print("Must specify file name!")
     exit(1)
 
 file_name = argv[1]
 
 with open(file_name, 'r') as f:
     config_file = f.read()
 
 config = ConfigTree(config_file)
 
 if not config.exists(['nat']):
     # Nothing to do
     exit(0)
 
 for direction in ['source', 'destination']:
     # If a node doesn't exist, we obviously have nothing to do.
     if not config.exists(['nat', direction]):
         continue
 
     # However, we also need to handle the case when a 'source' or 'destination' sub-node does exist,
     # but there are no rules under it.
     if not config.list_nodes(['nat', direction]):
         continue
 
     for rule in config.list_nodes(['nat', direction, 'rule']):
         base = ['nat', direction, 'rule', rule]
         for iface in ['inbound-interface','outbound-interface']:
             if config.exists(base + [iface]):
                 tmp = config.return_value(base + [iface])
-                config.delete(base + [iface])
-                config.set(base + [iface, 'interface-name'], value=tmp)
+                if tmp:
+                    config.delete(base + [iface])
+                    config.set(base + [iface, 'interface-name'], value=tmp)
 
 try:
     with open(file_name, 'w') as f:
         f.write(config.to_string())
 except OSError as e:
     print("Failed to save the modified config: {}".format(e))
     exit(1)