diff --git a/utils/load-stats-node.cc b/utils/load-stats-node.cc
index 04ac660..8775a22 100644
--- a/utils/load-stats-node.cc
+++ b/utils/load-stats-node.cc
@@ -158,13 +158,28 @@
 LoadStatsNode::IsZero () const
 {
   bool zero = true;
-  std::for_each (m_incoming.begin (), m_incoming.end (),
-                 zero &= ll::bind (&LoadStatsFace::IsZero,
-                                   ll::bind (&stats_container::value_type::second, ll::_1)));
+  for (stats_container::const_iterator item = m_incoming.begin ();
+       item != m_incoming.end ();
+       item ++)
+    {
+      zero &= item->second.IsZero ();
+    }
 
-  std::for_each (m_outgoing.begin (), m_outgoing.end (),
-                 zero &= ll::bind (&LoadStatsFace::IsZero,
-                                   ll::bind (&stats_container::value_type::second, ll::_1)));
+  for (stats_container::const_iterator item = m_outgoing.begin ();
+       item != m_outgoing.end ();
+       item ++)
+    {
+      zero &= item->second.IsZero ();
+    }
+
+//  std::for_each (m_incoming.begin (), m_incoming.end (),
+//                 zero &= ll::bind (&LoadStatsFace::IsZero,
+//                                   ll::bind (&stats_container::value_type::second, ll::_1)));
+//
+//  std::for_each (m_outgoing.begin (), m_outgoing.end (),
+//                 zero &= ll::bind (&LoadStatsFace::IsZero,
+//                                   ll::bind (&stats_container::value_type::second, ll::_1)));
+  
   zero &= m_pit.IsZero ();
   
   return zero;  
