Problem getting data in to Excel from a stored procedure



I have an Excel 2003 work*** with a macro. Here is the code:
' Create objects.
Dim cnUJMAIN As ADODB.Connection
Dim rsResults As ADODB.Recordset
Dim adoCmd As ADODB.Command

' Provide the connection string.
Dim strConn As String
Dim sTextTerm As String
Dim sSQL As String
Set cnUJMAIN = New ADODB.Connection

'Use the SQL Server OLE DB Provider.
strConn = "PROVIDER=SQLOLEDB;"

'Connect to the Pubs database on the local server.
strConn = strConn & "DATA SOURCE=DUJB2;INITIAL CATALOG=UJMN;"

'Use an integrated login.
'strConn = strConn & " INTEGRATED SECURITY=sspi;"
'Use regular
strConn = strConn & "User ID=sa;password=**********"
'Now open the connection.
cnUJMAIN.ConnectionTimeout = 600
cnUJMAIN.CommandTimeout = 600
cnUJMAIN.Open strConn
' Create a recordset object.
Set rsResults = New ADODB.Recordset
Set adoCmd = New ADODB.Command
With adoCmd
.CommandType = adCmdStoredProc
.CommandText = "USP_DP_LoadListPledgeGiftTotalsAllYears"
.ActiveConnection = cnUJMAIN
.CommandTimeout = 600
.Parameters.Append .CreateParameter(Name:="RETURN_VALUE",
Type:=adInteger, Direction:=adParamReturnValue, Size:=4, Value:=0)
End With

With rsResults
'.CursorLocation = adUseClient
.CursorLocation = adUseServer
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open Source:=adoCmd
'.Open sSQL, cnUJMAIN, adOpenForwardOnly, adLockReadOnly
'Disconnect the recordset from the server
.ActiveConnection = Nothing ' <------- Fails here
End With
Range("A2:BS35000").Select 'just in case
Selection.ClearContents


Sheet1.Range("A2").CopyFromRecordset rsResults

rsResults.Close
cnUJMAIN.Close
Set rsResults = Nothing
Set adoCmd = Nothing
Set cnUJMAIN = Nothing
The work*** reference Ado 2.6
The code fails. The line .Open Source=adoCmd executes and after about 30
seconds it goes to .ActiveConnection = Nothing. At this point looking at the
properties of the recordset most of them show "Operation is not allowed when
the object is closed".
Executing the stored procedure in query analyzer takes about 60-80 seconds.
Any suggestions? Why the code does not wait at least 600 seconds?
Thanks
MY
.