diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index fb9355e2737e28cf4eb6f8470c1f1fa441b9dfa2..cb3e0e8a30497ade6b0822afde1928a989e4930c 100644
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -1994,19 +1994,26 @@ static void M_ConfirmConnect(event_t *ev)
 			}
 			else
 				cl_mode = CL_LOADFILES;
-
-#ifdef TOUCHINPUTS
-			M_TSNav_SetConfirmVisible(false);
-#endif
-			M_ClearMenus(true);
 			break;
 		case -1:
 			cl_mode = CL_ABORTED;
-			M_ClearMenus(true);
 			break;
 		default:
 			break;
 	}
+
+	if (result != 0)
+	{
+		M_ClearMenus(true);
+
+#ifdef TOUCHINPUTS
+		M_TSNav_SetBackVisible(true);
+		TS_DefineNavigationButtons();
+		TS_HideNavigationButtons();
+
+		touchnavigation[TOUCHNAV_BACK].defined = true;
+#endif
+	}
 #else
 	(void)ev;
 #endif