The rule Character:SkillUpModifier for modifying skill up rate has no effect on some skills (weapon & defense for example) after skill level 150.
In zone/Client.cpp function CheckIncreaseSkill:
	Code:
		int32 Chance = 10 + chancemodi + ((252 - skillval) / 20);
	Chance = (Chance * RuleI(Character, SkillUpModifier) / 100);
	Chance = mod_increase_skill_chance(Chance, against_who);
	if(Chance < 1)
		Chance = 1; // Make it always possible
	if(zone->random.Real(0, 99) < Chance)
 The calculation  Chance = 10 + chancemodi + ((252 - skillval) / 20) will yield negative chance from skill value 153 for skills that use -15 as chancemodi (weapon, offense and defense).
And since the rule Character:SkillUpModifier is applied before the check that chance is at least 1 the rule will then have no effect at all.
Suggested change. 
Just move the check that Chance is at least 1 before the rule Character:SkillUpModifier is applied.
	Code:
		int32 Chance = 10 + chancemodi + ((252 - skillval) / 20);
	if(Chance < 1)
		Chance = 1; // Make it always possible
	Chance = (Chance * RuleI(Character, SkillUpModifier) / 100);
	Chance = mod_increase_skill_chance(Chance, against_who);
	if(zone->random.Real(0, 99) < Chance)