Dirk-Jan, thanks very much for your work on this. It was very useful for me, but I would like to point out a design flaw I encountered. In case someone just needs to use U-Surf (the upright version of surf), you still compute the orientation of each point prior to producing the descriptor, although it is not needed at all - and the computational overhead is somewhat significant.
So, I would suggest the following change to whoever is interested.
In file SubFunctions/SurfDescriptor_DescribeInterestPoints at line 32, I changed