Assert assertion doesn't assert wrongly

In those almost clear day, I’m hitting this assertion:

    /* An identifier string must be suitable for use as a script variable or XML
       attribute, so it can only contain this limited set of characters.. */
    jassert (name.containsOnly (T("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_")) && name.isNotEmpty());

Because I’m using setColour with a colourId set as 0x80060000 (which is negative in decimal representation).
Fix is simple:

static const var::identifier getColourPropertyId (const int colourId)
{
    String s;
    s.preallocateStorage (18);
    s << T("jcclr_") << colourId;
    return s;
}

should read

static const var::identifier getColourPropertyId (const int colourId)
{
    String s;
    s.preallocateStorage (18);
    s << T("jcclr_") << String::toHexString(colourId);
    return s;
}

Good one, thanks!