diff --git a/include/common/appsession.h b/include/common/appsession.h
new file mode 100644
index 0000000..2c39e46
--- /dev/null
+++ b/include/common/appsession.h
@@ -0,0 +1,58 @@
+#ifndef _COMMON_APPSESS_H
+#define _COMMON_APPSESS_H
+
+#define TBLSIZ 10
+#define TBLCHKINT 5000 /* The time between two calls of appsession_refresh in ms */
+
+#include <sys/time.h>
+
+#include <common/chtbl.h>
+#include <common/hashpjw.h>
+#include <common/list.h>
+
+#include <types/task.h>
+
+typedef struct appsessions {
+	char *sessid;
+	char *serverid;
+	struct timeval expire;		/* next expiration time for this application session */
+	unsigned long int request_count;
+} appsess;
+
+#define sizeof_appsess  sizeof(struct appsessions)
+extern void **pool_appsess;
+
+struct app_pool {
+	void **sessid;
+	void **serverid;
+	int ses_waste, ses_use, ses_msize;
+	int ser_waste, ser_use, ser_msize;
+};
+
+extern struct app_pool apools;
+extern int have_appsession;
+
+
+/* Callback for hash_lookup */
+int match_str(const void *key1, const void *key2);
+
+/* Callback for destroy */
+void destroy(void *data);
+
+#if defined(DEBUG_HASH)
+static void print_table(const CHTbl *htbl);
+#endif
+
+int appsession_refresh(struct task *t);
+int appsession_task_init(void);
+int appsession_init(void);
+void appsession_cleanup(void);
+
+#endif /* _COMMON_APPSESS_H */
+
+/*
+ * Local variables:
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ * End:
+ */
