Ok, a ver, a veces es mas fácil volverlo a hacer que detectar mal funcionamientos extraños

.
Este código lo saqué de las respuestas anteriores, chécalo y verifica que tiene que el tuyo no (lo copie y modifique el origen de datos y funciona sin problemas a la primera):
Código:
<%
response.write session(pagina)&"<br>"
xx=request.form("direccion")
if xx = "Atras" then
session("pagina")=session("pagina")-1
if session("pagina")< 1 then
session("pagina")=1
end if
if session("pagina") = "" then
session("pagina")=1
end if
else
if xx="Adelante" then
session("pagina")=session("pagina")+1
else
session("pagina")=1
end if
end if
Set cnn = Server.CreateObject("ADODB.Connection")
sConn = "Driver={SQL Server};SERVER=servidor; DATABASE=bd;"&_
"UID=user;PWD=password"
cnn.Open sConn
response.write "0"&"<br>"
Set Ob_RS=Server.CreateObject("ADODB.Recordset")
ob_RS.CursorLocation =3
response.write "1"&"<br>"
sql="Execute sListaArticulos 10,0,5"
Ob_RS.Open sql,cnn,3,1
response.write "2"&"<br>"
Ob_RS.PageSize=5 '10
if ob_rs.pagecount=0 then
Response.Redirect "novalores.asp"
end if
if session("pagina")>ob_rs.pagecount then
session("pagina")=ob_rs.pagecount
end if
ob_rs.absolutepage=session("pagina")
inicio=1+(session("pagina")-1)*ob_rs.pagesize
'fin=inicio+9
fin=inicio+5
if fin > ob_rs.recordcount then
fin =ob_rs.recordcount
end if
%>
<center><h3>LISTA DE PATENTES SOLICITADAS</h3></center>
<table border="0" width="100%" bgcolor="khaki">
<tr>
<td width="50%" align="center">Registros <font color="#FF0000"><%=inicio%> </font>
al <font color="#FF0000"><%=fin%></font> de un total de
<font color="#FF0000"><%=ob_rs.recordcount%></font></td>
<td width="50%" align="center">Página <font color="#FF0000"><%=session("pagina")%>
</font> de <font color="#FF0000"><%=ob_rs.pagecount%></font></td>
</tr>
</table>
<br>
<%IF NOT Ob_RS.Eof THEN%>
<TABLE BORDER=1>
<center>
<table border="2" bgcolor="white">
<TR>
<TH>Autor</TH>
<TH>Numero</TH>
<%Registro=0
'DO WHILE Registro<10 AND NOT Ob_RS.Eof
DO WHILE Registro<5 AND NOT Ob_RS.Eof
%>
<TR>
<TD><%=Ob_RS(0)%></TD>
<TD><%=Ob_RS(1)%></TD>
<%Registro=Registro+1
Ob_RS.MoveNext
LOOP
Response.Write "</TABLE>" %>
<table border="0" width="38%" height="5">
<tr><%if session("pagina")<> 1 then %>
<td width="50%" height="1" align="center">
<form method="POST" action="paginacion2.asp">
<p><input type="submit" value="Atras" name="direccion"></p>
</form>
</td><%end if%>
<%if session("pagina")< ob_rs.pagecount then%>
<td width="50%" height="1" align="center">
<form method="POST" name="paginacion2.asp">
<p><input type="submit" value="Adelante" name="direccion"></p>
</form>
</td><%end if%>
</tr>
</table>
</center>
</div>
<%END IF%>
<% Ob_RS.Close
Cnn.Close%>
Saludos