diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
index c3a6755..e79f7d2 100644
--- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
+++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
@@ -74,6 +74,7 @@
     public void removeCell(int pos) {
         if (pos >= 0 && pos < ctRow.sizeOfTcArray()) {
             tableCells.remove(pos);
+            ctRow.removeTc(pos);
         }
     }
 
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java
index 383e5c3..620b59e 100644
--- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java
+++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFTableRow.java
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xwpf.usermodel;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -142,6 +143,20 @@
     }
 
     @Test
+    public void testRemoveCell() throws IOException {
+        XWPFDocument doc = new XWPFDocument();
+        XWPFTableRow tr = doc.createTable(1, 1).createRow();
+
+        assertEquals(1, tr.getTableCells().size());
+        assertEquals(tr.getTableCells().size(), tr.getCtRow().sizeOfTcArray());
+
+        tr.removeCell(0);
+        assertEquals(0, tr.getTableCells().size());
+        assertEquals(tr.getTableCells().size(), tr.getCtRow().sizeOfTcArray());
+        doc.close();
+    }
+
+    @Test
     public void testBug62174() throws IOException {
         try (XWPFDocument doc = XWPFTestDataSamples
                 .openSampleDocument("Bug60337.docx")) {
