diff --git a/pgadmin/dlg/dlgServer.cpp b/pgadmin/dlg/dlgServer.cpp
index 1bd9d98..cbf58f2 100644
--- a/pgadmin/dlg/dlgServer.cpp
+++ b/pgadmin/dlg/dlgServer.cpp
@@ -144,6 +144,7 @@ void dlgServer::OnOK(wxCommandEvent &ev)
 	if (!btnOK->IsEnabled())
 		return;
 #endif
+
 	// Display the 'save password' hint if required
 	if(chkStorePwd->GetValue())
 	{
@@ -152,10 +153,8 @@ void dlgServer::OnOK(wxCommandEvent &ev)
 	}
 
 	// notice: changes active after reconnect
-
 	EnableOK(false);
 
-
 	if (server)
 	{
 		server->iSetName(GetName());
@@ -257,9 +256,6 @@ void dlgServer::OnOK(wxCommandEvent &ev)
 		}
 		server->iSetGroup(cbGroup->GetValue());
 
-        if (connection)
-		    wxMessageBox(_("Note: some changes to server settings may only take effect the next time pgAdmin connects to the server."), _("Server settings"), wxICON_INFORMATION);
-
 		mainForm->execSelChange(server->GetId(), true);
 		mainForm->GetBrowser()->SetItemText(item, server->GetFullName());
 		mainForm->SetItemBackgroundColour(item, wxColour(server->GetColour()));
@@ -364,12 +360,19 @@ int dlgServer::Go(bool modal)
 		txtPassword->Disable();
 		if (connection)
 		{
+			txtDescription->Disable();
+			txtService->Disable();
 			txtName->Disable();
 			cbDatabase->Disable();
 			txtPort->Disable();
 			cbSSL->Disable();
 			txtUsername->Disable();
 			chkStorePwd->Disable();
+		    chkRestore->Disable();
+		    txtDbRestriction->Disable();
+		    colourPicker->Disable();
+		    cbGroup->Disable();
+	        EnableOK(false);
 		}
 	}
 	else
@@ -414,8 +417,8 @@ pgObject *dlgServer::CreateObject(pgCollection *collection)
 
 void dlgServer::OnChangeTryConnect(wxCommandEvent &ev)
 {
-	chkStorePwd->Enable(chkTryConnect->GetValue());
-	txtPassword->Enable(chkTryConnect->GetValue());
+	chkStorePwd->Enable(chkTryConnect->GetValue() && !connection);
+	txtPassword->Enable(chkTryConnect->GetValue() && !connection);
 	OnChange(ev);
 }
 
@@ -451,7 +454,6 @@ void dlgServer::CheckChange()
 		          || cbGroup->GetValue() != server->GetGroup();
 	}
 
-
 #ifdef __WXMSW__
 	CheckValid(enable, !name.IsEmpty(), _("Please specify address."));
 #else
@@ -463,7 +465,7 @@ void dlgServer::CheckChange()
 	CheckValid(enable, !txtUsername->GetValue().IsEmpty(), _("Please specify user name"));
 	CheckValid(enable, dbRestrictionOk, _("Restriction not valid."));
 
-	EnableOK(enable);
+	EnableOK(enable && !connection);
 }
 
 
