Sono riuscito a farla funzionare, solo che mi restituisce la stringa al contrario di come viene scritta, perchè?

codice:
<%
Function dividiStringa(sStr, iInizio, iProg)

	Dim sTesto 
	Dim lLenght
	Dim sFinal 

	If Len(sStr) > 20 Then
	   If Mid(sStr, 21, 1) = " " Then
		  sFinal = Mid(sStr, 1, 20)
		  sTesto = Mid(sNota, 22, Len(sStr) - 21) & "
"
		  iProg = iProg + 1
		  dividiStringa sTesto, 1, iProg
	   Else
		  lLenght = InStrRev(Mid(sStr, 1, 20), " ")
		  If Not lLenght = 0 Then
			 sFinal = Mid(sStr, 1, lLenght) & "
"
			 sTesto = Mid(sStr, lLenght + 1, Len(sStr) - lLenght)
		  Else
			 sFinal = Mid(sStr, 1, 20) & "
"
			 sTesto = Mid(sNota, 20 + 1, Len(sStr) - 20)
		  End If
		  iProg = iProg + 1
		  dividiStringa sTesto, 1, iProg
	   End If
	ElseIf Len(sStr) <= 20 And Len(sStr) <> 0 Then
		 sFinal = sFinal & sStr
	End If
	
	response.write(sFinal)

End Function

response.write(dividiStringa("Ciao a tutti, come va? Proviamo a fare questa prova di spezzatura.",1,1))

%>
Non capisco dove sbaglio! :master:

Mi ritorna questo:

codice:
spezzatura.questa prova di 
va? Proviamo a fare 
Ciao a tutti, come 


--------------------------------------------------------------

[EDIT]: da un rapido debug il ciclo è questo:

codice:
2° sFinal - qui vale : Ciao a tutti, come 
2° sFinal - qui vale : va? Proviamo a fare 
2° sFinal - qui vale : questa prova di 
4° sFinal - qui vale : spezzatura.