This was our fix for exactly the same problem. We created our own encoder class and put in this PIDGet method:
double RhsEncoder:

IDGet()
{
double dfNewRate;
double dfNewCount = pQuadrature->GetDistance();
double dfNewTime = GetClock();
if (pQuadrature->GetStopped())
{
dfNewRate = 0.0;
}
else
{
// calc the rate
if((dfNewTime - dfLastTime) == 0.0)
{
dfNewRate = 0.0;
}
else
{
dfNewRate = (dfNewCount - dfLastCount)/(dfNewTime -
dfLastTime);
}
}
dfLastTime = dfNewTime;
dfLastCount = dfNewCount;
return(dfNewRate);
}
HTH