diff --git a/Irpg/Main.pm b/Irpg/Main.pm
index 0cf90c1f2d2d6da7a2d57f95bcd434cdf26ddc24..9fccd84391940082dc55e61bbd18ad19809b8c8b 100644
--- a/Irpg/Main.pm
+++ b/Irpg/Main.pm
@@ -158,7 +158,10 @@ sub penalize {
         $pen_key = 'pen_title';
     }
     elsif ($type eq "chclass") {
-        $pen = int($opts->{rpbase} * ($opts->{rppenstep}**$rps->{$username}{level}));
+        $pen = $rps->{$username}{level} <= 60 ?
+                int( $opts->{rpbase} * ($opts->{rpstep}**$rps->{$username}{level})) :
+                int(($opts->{rpbase} * ($opts->{rpstep}**60))
+                    + (86400*($rps->{$username}{level} - 60)));
         $reason = 'training';
         $pen_key = 'pen_class';
     }