To tolerate software faults, N-Version Programming (NVP) and N-Modular Redundant (NMR) techniques are widely employed. In these techniques, N modules operate on the same data and send their outputs to a software voter. Since the voter is a single point of failure in the techniques, availability and safety are essential requirements. In this paper a confidence-based software voting technique is proposed. The proposed technique considers weight oscillation and confidence of each module to improve availability and safety of the voter. Evaluation results showed that availability and safety of confidence-based software voter in contrast with standard majority voter and adaptive majority voter has improved about 4.4%, 4.9%, and 5.8% for three error injection scenarios.