diff --git a/layout/html/table/public/Makefile.in b/layout/html/table/public/Makefile.in
new file mode 100644
index 000000000000..4d4ae6de0eb8
--- /dev/null
+++ b/layout/html/table/public/Makefile.in
@@ -0,0 +1,35 @@
+#!gmake
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.0 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+
+DEPTH = ../../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(DEPTH)/config/autoconf.mk
+
+MODULE = raptor
+
+EXPORTS = \
+ nsITableCellLayout.h \
+ $(NULL)
+
+EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
+
+include $(topsrcdir)/config/config.mk
+
+include $(topsrcdir)/config/rules.mk
diff --git a/layout/html/table/public/Manifest.txt b/layout/html/table/public/Manifest.txt
new file mode 100644
index 000000000000..58f6e8685f21
--- /dev/null
+++ b/layout/html/table/public/Manifest.txt
@@ -0,0 +1,5 @@
+#
+# This is a list of local files which get copied to the mozilla:dist:webshell directory
+#
+
+nsITableCellLayout.h
\ No newline at end of file
diff --git a/layout/html/table/public/makefile.win b/layout/html/table/public/makefile.win
new file mode 100644
index 000000000000..d80c6d4a4b2a
--- /dev/null
+++ b/layout/html/table/public/makefile.win
@@ -0,0 +1,28 @@
+#!nmake
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.0 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+
+DEPTH=..\..\..\..
+
+IGNORE_MANIFEST=1
+
+MODULE=raptor
+
+EXPORTS = \
+ nsITableCellLayout.h \
+ $(NULL)
+
+include <$(DEPTH)\config\rules.mak>
\ No newline at end of file
diff --git a/layout/html/table/public/nsITableCellLayout.h b/layout/html/table/public/nsITableCellLayout.h
new file mode 100644
index 000000000000..bbe43117ca0f
--- /dev/null
+++ b/layout/html/table/public/nsITableCellLayout.h
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+#ifndef nsITableCellLayout_h__
+#define nsITableCellLayout_h__
+
+#include "nsISupports.h"
+
+// IID for the nsITableCellLayout interface
+// 8c921430-ba23-11d2-8f4b-006008159b0c
+#define NS_ITABLECELLAYOUT_IID \
+ { 0x8c921430, 0xba23, 0x11d2,{0x8f, 0xb4, 0x00, 0x60, 0x08, 0x15, 0x9b, 0x0c}}
+
+/**
+ * nsITableCellLayout
+ * interface for layout objects that act like table cells.
+ *
+ * @author sclark
+ */
+class nsITableCellLayout : public nsISupports
+{
+public:
+
+ static const nsIID& IID() { static nsIID iid = NS_ITABLECELLAYOUT_IID; return iid; }
+
+ /** return the mapped cell's row index (starting at 0 for the first row) */
+ virtual nsresult GetRowIndex(PRInt32 &aRowIndex)=0;
+
+ /** return the mapped cell's column index (starting at 0 for the first column) */
+ virtual nsresult GetColIndex(PRInt32 &aColIndex)=0;
+};
+
+
+#endif
+
+
+
diff --git a/layout/tables/nsITableCellLayout.h b/layout/tables/nsITableCellLayout.h
new file mode 100644
index 000000000000..bbe43117ca0f
--- /dev/null
+++ b/layout/tables/nsITableCellLayout.h
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Netscape Public License
+ * Version 1.0 (the "NPL"); you may not use this file except in
+ * compliance with the NPL. You may obtain a copy of the NPL at
+ * http://www.mozilla.org/NPL/
+ *
+ * Software distributed under the NPL is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+ * for the specific language governing rights and limitations under the
+ * NPL.
+ *
+ * The Initial Developer of this code under the NPL is Netscape
+ * Communications Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All Rights
+ * Reserved.
+ */
+#ifndef nsITableCellLayout_h__
+#define nsITableCellLayout_h__
+
+#include "nsISupports.h"
+
+// IID for the nsITableCellLayout interface
+// 8c921430-ba23-11d2-8f4b-006008159b0c
+#define NS_ITABLECELLAYOUT_IID \
+ { 0x8c921430, 0xba23, 0x11d2,{0x8f, 0xb4, 0x00, 0x60, 0x08, 0x15, 0x9b, 0x0c}}
+
+/**
+ * nsITableCellLayout
+ * interface for layout objects that act like table cells.
+ *
+ * @author sclark
+ */
+class nsITableCellLayout : public nsISupports
+{
+public:
+
+ static const nsIID& IID() { static nsIID iid = NS_ITABLECELLAYOUT_IID; return iid; }
+
+ /** return the mapped cell's row index (starting at 0 for the first row) */
+ virtual nsresult GetRowIndex(PRInt32 &aRowIndex)=0;
+
+ /** return the mapped cell's column index (starting at 0 for the first column) */
+ virtual nsresult GetColIndex(PRInt32 &aColIndex)=0;
+};
+
+
+#endif
+
+
+