diff --git a/daemon/table/cs-policy-priority-fifo.cpp b/daemon/table/cs-policy-priority-fifo.cpp
index 3c604ce..d037175 100644
--- a/daemon/table/cs-policy-priority-fifo.cpp
+++ b/daemon/table/cs-policy-priority-fifo.cpp
@@ -47,27 +47,27 @@
 }
 
 void
-PriorityFifoPolicy::doAfterInsert(iterator i)
+PriorityFifoPolicy::doAfterInsert(EntryRef i)
 {
   this->attachQueue(i);
   this->evictEntries();
 }
 
 void
-PriorityFifoPolicy::doAfterRefresh(iterator i)
+PriorityFifoPolicy::doAfterRefresh(EntryRef i)
 {
   this->detachQueue(i);
   this->attachQueue(i);
 }
 
 void
-PriorityFifoPolicy::doBeforeErase(iterator i)
+PriorityFifoPolicy::doBeforeErase(EntryRef i)
 {
   this->detachQueue(i);
 }
 
 void
-PriorityFifoPolicy::doBeforeUse(iterator i)
+PriorityFifoPolicy::doBeforeUse(EntryRef i)
 {
   BOOST_ASSERT(m_entryInfoMap.find(i) != m_entryInfoMap.end());
 }
@@ -89,7 +89,7 @@
                !m_queues[QUEUE_STALE].empty() ||
                !m_queues[QUEUE_FIFO].empty());
 
-  iterator i;
+  EntryRef i;
   if (!m_queues[QUEUE_UNSOLICITED].empty()) {
     i = m_queues[QUEUE_UNSOLICITED].front();
   }
@@ -105,7 +105,7 @@
 }
 
 void
-PriorityFifoPolicy::attachQueue(iterator i)
+PriorityFifoPolicy::attachQueue(EntryRef i)
 {
   BOOST_ASSERT(m_entryInfoMap.find(i) == m_entryInfoMap.end());
 
@@ -128,7 +128,7 @@
 }
 
 void
-PriorityFifoPolicy::detachQueue(iterator i)
+PriorityFifoPolicy::detachQueue(EntryRef i)
 {
   BOOST_ASSERT(m_entryInfoMap.find(i) != m_entryInfoMap.end());
 
@@ -143,7 +143,7 @@
 }
 
 void
-PriorityFifoPolicy::moveToStaleQueue(iterator i)
+PriorityFifoPolicy::moveToStaleQueue(EntryRef i)
 {
   BOOST_ASSERT(m_entryInfoMap.find(i) != m_entryInfoMap.end());
 
