 				switch (localName)
 				{
 					case "starttls":
-						handleStreamTLS( feature ); // Checks for 'required'
+						if ( !loggedIn )
+						{
+							handleStreamTLS( feature ); // Checks for 'required'
+						}
 						break;
 					case "register":
 						// In-Band Registration, if enabled.... TODO

						}
						break;
					case "bind":
						// compression needed, done? else auth done?
						if ( ((_compress && compressionNegotiated) || !_compress) && loggedIn )
						{
							bindConnection();

						if ( !loggedIn )
						{
							configureAuthMechanisms( feature );
							if ( ( username != null && username.length > 0 ) || useAnonymousLogin )
							{
								beginAuthentication();
							}
						}
						break;
					case "compression":
