diff --git a/src/opus_encoder.c b/src/opus_encoder.c
index f57fa52e3799069e9e9943f2ad868fde013e37e1..c4a465578ce93aa69763b39bcc0d9e6ace59f941 100644
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -590,6 +590,10 @@ static int transient_viterbi(const float *E, const float *E_1, int N, int frame_
    float best_cost;
    int best_state;
 
+   /* Makes variable framesize less aggressive at lower bitrates, but I can't
+      find any valid theretical justification for this (other than it seems
+      to help) */
+   frame_cost *= 720/rate;
    for (i=0;i<16;i++)
    {
       /* Impossible state */