diff --git c/cli/src/connections.c i/cli/src/connections.c
index 5a41d88..f9b167f 100644
--- c/cli/src/connections.c
+++ i/cli/src/connections.c
@@ -2040,21 +2040,21 @@ check_valid_name (const char *val, const NameItem array[], GError **error)
 
 static const NameItem *
 get_valid_settings_array (const char *con_type)
 {
 	guint i, num;
 
 	if (!con_type)
 		return NULL;
 
 	num = G_N_ELEMENTS (nmc_valid_connection_types);
-        for (i = 0; i < num; i++) {
+	for (i = 0; i < num; i++) {
 		if (!strcmp (con_type, nmc_valid_connection_types[i].name))
 			return nmc_valid_connection_types[i].settings;
 	}
 	return NULL;
 }
 
 static gboolean
 is_setting_mandatory (NMConnection *connection, NMSetting *setting)
 {
 	NMSettingConnection *s_con;
@@ -4691,20 +4691,22 @@ menu_switch_to_level0 (NmcEditorMenuContext *menu_ctx,
                        NmcTermColor prompt_color)
 {
 	menu_ctx->level = 0;
 	g_free (menu_ctx->main_prompt);
 	menu_ctx->main_prompt = nmc_colorize (prompt_color, "%s", prompt);
 	menu_ctx->curr_setting = NULL;
 	g_strfreev (menu_ctx->valid_props);
 	menu_ctx->valid_props = NULL;
 	g_free (menu_ctx->valid_props_str);
 	menu_ctx->valid_props_str = NULL;
+
+	nmc_completion_setting = NULL;  /* for TAB completion */
 }
 
 static void
 menu_switch_to_level1 (NmcEditorMenuContext *menu_ctx,
                        NMSetting *setting,
                        const char *setting_name,
                        NmcTermColor prompt_color)
 {
 	menu_ctx->level = 1;
 	g_free (menu_ctx->main_prompt);
@@ -4943,39 +4945,37 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 					}
 				} else
 					ss = menu_ctx.curr_setting;
 
 				if (descr_all) {
 					/* Remove setting from the connection */
 					connection_remove_setting (connection, ss);
 					if (ss == menu_ctx.curr_setting) {
 						/* If we removed the setting we are in, go up */
 						menu_switch_to_level0 (&menu_ctx, BASE_PROMPT, nmc->editor_prompt_color);
-						nmc_completion_setting = NULL;  /* for TAB completion */
 					}
 				} else {
 					GError *tmp_err = NULL;
 					char *prop_name = is_property_valid (ss, cmd_arg_p, &tmp_err);
 					if (prop_name) {
 						/* Delete property value */
 						nmc_property_set_default_value (ss, prop_name);
 					} else {
 						/* If the string is not a property, try it as a setting */
 						NMSetting *s_tmp;
 						s_tmp = is_setting_valid (connection, valid_settings_arr, cmd_arg_p);
 						if (s_tmp) {
 							/* Remove setting from the connection */
 							connection_remove_setting (connection, s_tmp);
 							if (ss == menu_ctx.curr_setting) {
 								/* If we removed the setting we are in, go up */
 								menu_switch_to_level0 (&menu_ctx, BASE_PROMPT, nmc->editor_prompt_color);
-								nmc_completion_setting = NULL;  /* for TAB completion */
 							}
 						} else
 							printf (_("Error: neither invalid property: %s, "
 							          "neither a valid setting name.\n"),
 							        tmp_err->message);
 						g_clear_error (&tmp_err);
 					}
 					g_free (prop_name);
 				}
 			}
@@ -5143,24 +5143,22 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 				g_mutex_unlock (&nmc_editor_mutex);
 			} else
 				printf (_("Error: connection verification failed: %s\n"),
 				        err1 ? err1->message : _("(unknown error)"));
 
 			g_clear_error (&err1);
 			break;
 
 		case NMC_EDITOR_MAIN_CMD_BACK:
 			/* Go back (up) an the menu */
-			if (menu_ctx.level == 1) {
+			if (menu_ctx.level == 1)
 				menu_switch_to_level0 (&menu_ctx, BASE_PROMPT, nmc->editor_prompt_color);
-				nmc_completion_setting = NULL;  /* for TAB completion */
-			}
 			break;
 
 		case NMC_EDITOR_MAIN_CMD_HELP:
 			/* Print command help */
 			editor_main_help (cmd_arg);
 			break;
 
 		case NMC_EDITOR_MAIN_CMD_NMCLI:
 			if (cmd_arg_p && matches (cmd_arg_p, "status-line") == 0) {
 				GError *tmp_err = NULL;
