Recursive Funprog 4GL not working

Hi all, i have a problem with this function:

Funprog SUM_TOTAL(PROJECT,BUDGET)
 Value Char PROJECT
 Value Char BUDGET
 Local Decimal TOTAL
 If !clalev([F:PJBU]) Local File PJMBUD [PJBU] : Endif
 If !clalev([F:PJLB]) Local File PJMBUDLIG [PJLB] : Endif
 If !clalev([F:YPJMCON]) Local File YPJMCON [YPJMCON] : Endif
 If !clalev([F:PJBU1]) Local File PJMBUD [PJBU1] : Endif

 TOTAL = 0
 Read [F:PJBU]PJBU0 = PROJECT;BUDGET
 If [S]fstat = 0
  If [F:PJBU]PBUIMP=2
   Filter [PJLB] Where OPPNUM=PROJECT and PBUCOD=BUDGET
   For [PJLB]PJLB0
    Filter [YPJMCON] Where OPPNUM = PROJECT and PBUCOD = BUDGET and PLBSEQ=[F:PJLB]PLBSEQ
    For [YPJMCON]YPJMSPE0
     TOTAL += [F:YPJMCON]VALCON
    Next
    Filter [YPJMCON]
   Next
   Filter [PJLB]
  Elsif [F:PJBU]PBUIMP=1
  Filter [F:PJBU1] Where OPPNUM=PROJECT and PBUPAE=BUDGET
  For [PJBU1]PJBU0
   TOTAL += Func SUM_TOTAL(PROJECT,[F:PJBU1]PBUCOD)
  Next
  Filter [PJBU1]
 Endif
Endif
End TOTAL

When I call the recursion the form gives me the error:

Return not corresponding to Gosub

how can I solve it?