         /// TIMEOUT: The join process timed out
         /// NOT_ALLOWED: Invalid security credentials
         self.targetDevice.transceiver!.sendJoinNetwork { result in
-            self.log("sendJoinNetwork: \(result)")
+            self.log("targetDevice.sendJoinNetwork: \(result)")
             if (result == .NONE) {
                 self.stopCommissioner()
             } else if (result == .NOT_ALLOWED) {
                 self.fail(withReason: .DeviceIsNotAllowedToJoinNetwork)
             } else if (result == .NOT_FOUND) {
                 self.fail(withReason: .DeviceIsUnableToFindNetworkToJoin)
-            }else {
+            } else if (result == .TIMEOUT) {
+                self.fail(withReason: .DeviceTimeoutWhileJoiningNetwork)
+            } else {
                 self.handleBluetoothErrorResult(result)
             }
          }


    private func targetDeviceLeaveNetwork() {
        self.targetDevice.transceiver!.sendLeaveNetwork { result in
            self.log("didReceiveLeaveNetworkReply: \(result)")
            if (result == .NONE) {
                self.stepComplete()
            } else {

        self.delegate.meshSetupDidEnterState(state: .JoiningNetworkStarted)
        /// NOT_ALLOWED: The client is not authenticated
        self.commissionerDevice!.transceiver!.sendStartCommissioner { result in
            self.log("commissionerDevice.sendStartCommissioner: \(result)")
            if result == .NONE {
                self.prepareJoiner()
            } else {
