 				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

		public static const STREAM_TYPE_FLASH_TERMINATED:uint = 3;

		/**
		 * The types of SASL mechanisms available.
		 *
		 * <p>By default, only <code>Anonymous</code> and <code>DigestMD5</code> are enabled.</p>
		 * @see org.igniterealtime.xiff.auth.Anonymous

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