Index: tv_play.cpp
===================================================================
--- tv_play.cpp	(revision 10368)
+++ tv_play.cpp	(working copy)
@@ -4476,6 +4476,7 @@
     uint  sig  = 0;
     float snr  = 0.0f;
     uint  ber  = 0xffffffff;
+    uint  pos  = 0;
     QString pat(""), pmt(""), mgt(""), vct(""), nit(""), sdt("");
     QString err = QString::null, msg = QString::null;
     for (it = slist.begin(); it != slist.end(); ++it)
@@ -4500,6 +4501,8 @@
             snr = it->GetValue();
         else if ("ber" == it->GetShortName())
             ber = it->GetValue();
+        else if ("pos" == it->GetShortName())
+            pos = it->GetValue();
         else if ("seen_pat" == it->GetShortName())
             pat = it->IsGood() ? "a" : "_";
         else if ("matching_pat" == it->GetShortName())
@@ -4538,6 +4541,8 @@
         sigDesc += " | " + tr("S/N %1dB").arg(log10f(snr), 3, 'f', 1);
     if (ber != 0xffffffff)
         sigDesc += " | " + tr("BE %1", "Bit Errors").arg(ber, 2);
+    if (pos != 100)
+        sigDesc += " | " + tr("Rotor %1\%").arg(pos,2);
 
     sigDesc = sigDesc + QString(" | (%1%2%3%4%5%6%7) %8")
         .arg(slock).arg(pat).arg(pmt).arg(mgt).arg(vct)
Index: dvbsignalmonitor.cpp
===================================================================
--- dvbsignalmonitor.cpp	(revision 10368)
+++ dvbsignalmonitor.cpp	(working copy)
@@ -154,7 +154,7 @@
         list<<bitErrorRate.GetName()<<bitErrorRate.GetStatus();
     if (HasFlags(kDVBSigMon_WaitForUB))
         list<<uncorrectedBlocks.GetName()<<uncorrectedBlocks.GetStatus();
-    if (HasFlags(kDVBSigMon_WaitForPos))
+    if (!is_rotor_done)
         list<<rotorPosition.GetName()<<rotorPosition.GetStatus();
     statusLock.unlock();
     return list;
@@ -511,16 +511,16 @@
             DBG_SM("UpdateValues", "Retuning for rotor completion");
             dvbchan->Retune();
             is_rotor_done = true;
+
+            QMutexLocker locker(&statusLock);
+            rotorPosition.SetValue(100);
         }
         else if (progress < 1.0)
         {
             if (is_rotor_done)
                 DBG_SM("UpdateValues", "Rotor is moving");
             is_rotor_done = false;
-        }
 
-        if (HasFlags(kDVBSigMon_WaitForPos))
-        {
             QMutexLocker locker(&statusLock);
             rotorPosition.SetValue((int)(progress * 100));
         }
