     {
         logonToPort(true);
         
+        // check for a logoff message
+        for each (var message :UpstreamMessage in _outq) {
+            if (message is LogoffRequest) {
+                // don't bother authing, just bail
+                log.info("Logged off prior to socket opening, shutting down");
+                shutdown(null);
+                return;
+            }
+        }
+
+        // kick off our writer thread now that we know we're ready to write 
+        _writer = new Timer(1);
+        _writer.addEventListener(TimerEvent.TIMER, sendPendingMessages);
+        _writer.start();
+
+        // clear the queue, the server doesn't like anything sent prior to auth
+        _outq.length = 0;
+
         // well that's great! let's logon
+        log.info("Posting auth request");
         postMessage(new AuthRequest(_client.getCredentials(), _client.getVersion(),
                                     _client.getBootGroups()));
-
-        // start up our writer thread now that we know we're ready to write
-        _writer.start();
     }
 
     /**


    public function postMessage (msg :UpstreamMessage) :void
    {
        _outq.push(msg);
    }


        _outStream = new ObjectOutputStream(_outBuffer);
        _inStream = new ObjectInputStream();

        _portIdx = 0;
        logonToPort();
    }
