Generic conversion function doesn't seem to work with Guids

How about:

T t = (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFromInvariantString(text);

Works fine for Guid and most other types.