           if returnedContext.exhaustPreviousContextMessage == true
             restOfMessage.exhaust()
 
+
           if returnedContext.findAnotherReceiver and !returnedContext.throwing and !restOfMessage.isEmpty()
             returnedContext.findAnotherReceiver = false
             returnedContext = returnedContext.previousContext
             findAnotherReceiver = true
             console.log "finding next receiver from:  " + restOfMessage.flToString()
+
 
           if findAnotherReceiver
             findAnotherReceiver = false

            returnedContext.returned = receiver
            returnedContext.unparsedMessage = returnedMessage
            return [returnedContext, returnedMessage]


          # where we detect an exception being thrown
          if theContext.throwing
            console.log "throw escape 2"
            restOfMessage.exhaust()

            if theContext.returned.flClass == FLReturn
              console.log "got a return!"
              theContext.throwing =false
              if theContext.returned.value?
                console.log "got a return with value!"
                theContext.returned = theContext.returned.value
              else
                theContext.returned = FLNil.createNew()
            else
              theContext.throwing = true

            return [theContext, restOfMessage]


          console.log "2 theContext.throwing: " + theContext.throwing

            console.log "3 returnedContext.throwing: " + returnedContext.throwing

          # where we detect an exception being thrown
          if theContext.throwing or returnedContext.throwing
            console.log "throw escape"
            theContext.returned = receiver
            restOfMessage.exhaust()
