We've found we can get round the problem by splitting the proc into 2 statements...
select getdate() timest, @SpName storedproc, @@nestlevel -1 nest, uid, @Logtype logtype,
hostname, program_name, hostprocess, ipaddr, @Message mess1, @Message2 mess2
into #x
from master..sysprocesses
where spid = @@spid
insert into SystemLog
( Timestamp, SpName, NestLevel, Uid, Logtype, Hostname,
ProgramName, HostProcess, Ipaddr, Message, Message2
)
select *
from #x