diff --git a/lib/data_proc_net.c b/lib/data_proc_net.c
index 47c117e4cc83e47eb41d4b6a26dd4a4d763629b7..f8b8fe0eeb3d35fbe8f4cd540f16015d1d07de82 100644
--- a/lib/data_proc_net.c
+++ b/lib/data_proc_net.c
@@ -445,15 +445,14 @@ int pn_process_inputs(struct proc_net *pn)
 	unsigned long op;
 
 	struct proc_task *t;
-	static struct proc_tracker *pt;
+	struct proc_tracker *pt;
 
 
 
 	if (list_empty(&pn->nodes))
 		return -1;
 
-	if (!pt)
-		pt = list_entry(pn->nodes.next, struct proc_tracker, node);
+	pt = list_first_entry(&pn->nodes, struct proc_tracker, node);
 
 	while (1) {
 		t = pt_track_get(pn->in);