Index: Field.cs =================================================================== --- Field.cs (revision 1711) +++ Field.cs (working copy) @@ -262,10 +262,17 @@ // now determine if we really should be binary if (connection.Settings.RespectBinaryFlags) CheckForExceptions(); + if (MaxLength < 2) + { + if (Type == MySqlDbType.String && ColumnLength == 36 && !connection.Settings.OldGuids) + mySqlDbType = MySqlDbType.Guid; + } + else + { + if (Type == MySqlDbType.String && ColumnLength/MaxLength == 36 && !connection.Settings.OldGuids) + mySqlDbType = MySqlDbType.Guid; + } - if (Type == MySqlDbType.String && ColumnLength == 36 && !connection.Settings.OldGuids) - mySqlDbType = MySqlDbType.Guid; - if (!IsBinary) return; if (connection.Settings.RespectBinaryFlags) Index: NativeDriver.cs =================================================================== --- NativeDriver.cs (revision 1711) +++ NativeDriver.cs (working copy) @@ -746,9 +746,7 @@ colFlags = (ColumnFlags)packet.ReadInteger(2); else colFlags = (ColumnFlags)packet.ReadByte(); - - field.SetTypeAndFlags(type, colFlags); - + field.Scale = (byte)packet.ReadByte(); @@ -770,6 +768,8 @@ field.Encoding = CharSetMap.GetEncoding(version, (string) charSets[field.CharacterSetIndex]); } + field.SetTypeAndFlags(type, colFlags); + return field; }