\def\backcite#1#2{%
  \@for\x:=#1\do{%
    \begingroup
      \csname @safe@activestrue\endcsname
      \edef\x{\endgroup
        \def\noexpand\x{\expandafter\@firstofone\x\@empty}%
      }%
    \x
    \expandafter\ifx\csname br@\x\endcsname\relax
      \expandafter\protected@xdef\csname br@\x\endcsname{%
        \persianfont\protect\backrefxxx#2%
      }%
      \ifBR@BackrefAlt
        \global\expandafter\let\csname brl@\x\expandafter\endcsname
                        \csname br@\x\endcsname
        \global\expandafter\let\csname brld@\x\expandafter\endcsname
                        \csname br@\x\endcsname
        \expandafter\gdef\csname brc@\x\endcsname{1}%
        \expandafter\gdef\csname brcd@\x\endcsname{1}%
      \fi
    \else
      \begingroup
        \@ifundefined{backrefxxxdupe}{}{\let\backrefxxx\backrefxxxdupe}%
        \expandafter\def\expandafter\reserved@a\expandafter{%
          \backrefxxx#2%
        }%
        \let\BRorg@backrefxxx\backrefxxx
        \global\let\BR@found=N%
        \long\def\backrefxxx##1##2##3{%
          \expandafter\def\expandafter\reserved@b\expandafter{%
            \BRorg@backrefxxx{##1}{##2}{##3}%
          }%
          \ifx\reserved@a\reserved@b
            \global\let\BR@found=Y%
          \fi
        }%
        \setbox\@tempboxa\hbox{\csname br@\x\endcsname}%
      \endgroup
      \let\backrefsep\relax
      \def\backreftwosep{\backrefsep}%
      \def\backreflastsep{\backrefsep}%
      \if N\BR@found
        \expandafter\protected@xdef\csname br@\x\endcsname{%
          \csname br@\x\endcsname, %
          \protect\backrefxxx#2%
        }%
        \ifBR@BackrefAlt
          \expandafter\protected@xdef\csname brl@\x\endcsname{%
            \csname brl@\x\endcsname
            \ifnum\@nameuse{brc@\x}=1 %
              \noexpand\backreftwosep
            \else
              \noexpand\backreflastsep
            \fi
            \protect\backrefxxx#2%
          }%
          \count@=\@nameuse{brc@\x}\relax
          \advance\count@ by 1 %
          \expandafter\xdef\csname brc@\x\endcsname{\the\count@}%
        \fi
      \fi
      \ifBR@BackrefAlt
        \expandafter\protected@xdef\csname brld@\x\endcsname{%
          \csname brld@\x\endcsname
          \ifnum\@nameuse{brcd@\x}=1 %
            \noexpand\backreftwosep
          \else
            \noexpand\backreflastsep
          \fi
          \protect\backrefxxx#2%
        }%
        \count@=\@nameuse{brcd@\x}\relax
        \advance\count@ by 1 %
        \expandafter\xdef\csname brcd@\x\endcsname{\the\count@}%
      \fi
    \fi
  }%
}
