diff --git a/mistune.py b/mistune.py
index 19faa62..8fb04ae 100644
--- a/mistune.py
+++ b/mistune.py
@@ -373,9 +373,9 @@ def parse_table(self, m):
cells = cells.split('\n')
for i, v in enumerate(cells):
v = re.sub(r'^ *\| *| *\| *$', '', v)
- cells[i] = re.split(r' *\| *', v)
+ cells[i] = re.split(r' *(?
Cell 5 | Cell 6 | Cell 7 | Cell 8 |
+
+
+ Header 1 | Header 2 |
+
+
+ Cell 1 | Cell 2 with a pipe in | inline code |
+ Cell 3 | Cell 4 with escaped | pipe for some content |
+
+
diff --git a/tests/fixtures/extra/gfm_tables.text b/tests/fixtures/extra/gfm_tables.text
index 5fd6321..966a74d 100644
--- a/tests/fixtures/extra/gfm_tables.text
+++ b/tests/fixtures/extra/gfm_tables.text
@@ -19,3 +19,8 @@ Header 1|Header 2|Header 3|Header 4
:-------|:------:|-------:|--------
Cell 1 |Cell 2 |Cell 3 |Cell 4
*Cell 5*|Cell 6 |Cell 7 |Cell 8
+
+Header 1 | Header 2
+-------- | --------------------------------------------
+Cell 1 | Cell 2 with a pipe in `\|` inline code
+Cell 3 | Cell 4 with escaped \| pipe for some content