Are you using a DataReader by chance? I know that a ReadOnly, ForwardOnly style cursor (firehose method) keeps a connection open and might cause this error. If youre using a DataReader, try moving to the end or closing the reader first, then do your rollback.
Just a guess...
-Nerseus