diff --git a/include/common/appsession.h b/include/common/appsession.h
index 6c12926..6c2494d 100644
--- a/include/common/appsession.h
+++ b/include/common/appsession.h
@@ -38,7 +38,6 @@
 /* Callback for destroy */
 void destroy(appsess *data);
 
-struct task *appsession_refresh(struct task *t);
 int appsession_task_init(void);
 int appsession_init(void);
 void appsession_cleanup(void);
diff --git a/src/appsession.c b/src/appsession.c
index 754e261..1d442ca 100644
--- a/src/appsession.c
+++ b/src/appsession.c
@@ -83,23 +83,7 @@
 	return 0;
 }
 
-int appsession_task_init(void)
-{
-	static int initialized = 0;
-	if (!initialized) {
-		if ((appsess_refresh = task_new()) == NULL)
-			return -1;
-
-		appsess_refresh->context = NULL;
-		appsess_refresh->expire = tick_add(now_ms, MS_TO_TICKS(TBLCHKINT));
-		appsess_refresh->process = appsession_refresh;
-		task_queue(appsess_refresh);
-		initialized ++;
-	}
-	return 0;
-}
-
-struct task *appsession_refresh(struct task *t)
+static struct task *appsession_refresh(struct task *t)
 {
 	struct proxy           *p = proxy;
 	struct appsession_hash *htbl;
@@ -133,6 +117,22 @@
 	return t;
 } /* end appsession_refresh */
 
+int appsession_task_init(void)
+{
+	static int initialized = 0;
+	if (!initialized) {
+		if ((appsess_refresh = task_new()) == NULL)
+			return -1;
+
+		appsess_refresh->context = NULL;
+		appsess_refresh->expire = tick_add(now_ms, MS_TO_TICKS(TBLCHKINT));
+		appsess_refresh->process = appsession_refresh;
+		task_queue(appsess_refresh);
+		initialized ++;
+	}
+	return 0;
+}
+
 int match_str(const void *key1, const void *key2)
 {
     appsess *temp1,*temp2;
