diff --git a/include/common/buf.h b/include/common/buf.h
new file mode 100644
index 0000000..998e31a
--- /dev/null
+++ b/include/common/buf.h
@@ -0,0 +1,50 @@
+/*
+ * include/common/buf.h
+ * Simple buffer handling.
+ *
+ * Copyright (C) 2000-2018 Willy Tarreau - w@1wt.eu
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef _COMMON_BUF_H
+#define _COMMON_BUF_H
+
+
+/* Structure defining a buffer's head */
+struct buffer {
+	char *p;                    /* buffer's start pointer, separates in and out data */
+	unsigned int size;          /* buffer size in bytes */
+	unsigned int i;             /* number of input bytes pending for analysis in the buffer */
+	unsigned int o;             /* number of out bytes the sender can consume from this buffer */
+	char data[0];               /* <size> bytes of stored data */
+};
+
+
+
+#endif /* _COMMON_BUF_H */
+
+/*
+ * Local variables:
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ * End:
+ */
diff --git a/include/common/buffer.h b/include/common/buffer.h
index 1a577ca..5e02cad 100644
--- a/include/common/buffer.h
+++ b/include/common/buffer.h
@@ -26,20 +26,13 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <common/buf.h>
 #include <common/chunk.h>
 #include <common/config.h>
 #include <common/ist.h>
 #include <common/memory.h>
 
 
-struct buffer {
-	char *p;                        /* buffer's start pointer, separates in and out data */
-	unsigned int size;              /* buffer size in bytes */
-	unsigned int i;                 /* number of input bytes pending for analysis in the buffer */
-	unsigned int o;                 /* number of out bytes the sender can consume from this buffer */
-	char data[0];                   /* <size> bytes */
-};
-
 /* an element of the <buffer_wq> list. It represents an object that need to
  * acquire a buffer to continue its process. */
 struct buffer_wait {
