diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
index 0b95809..f89b4d3 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
@@ -63,7 +63,7 @@ public class MemberTable extends JTable implements IMemberModelListener {
      * initialize the table
      */
     protected void init() {
-        MemberRoleCellEditor ce = (MemberRoleCellEditor)getColumnModel().getColumn(0).getCellEditor();  
+        MemberRoleCellEditor ce = (MemberRoleCellEditor)getColumnModel().getColumn(1).getCellEditor();
         setRowHeight(ce.getEditor().getPreferredSize().height);
         setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
         setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableColumnModel.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableColumnModel.java
index dc19bbb..b89a109 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableColumnModel.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableColumnModel.java
@@ -15,6 +15,13 @@ public class MemberTableColumnModel extends DefaultTableColumnModel {
 
         // column 0 - the member role
         col = new TableColumn(0);
+        col.setHeaderValue(tr("#"));
+        col.setResizable(true);
+        col.setPreferredWidth(20);
+        addColumn(col);
+
+        // column 1 - the member role
+        col = new TableColumn(1);
         col.setHeaderValue(tr("Role"));
         col.setResizable(true);
         col.setPreferredWidth(100);
@@ -22,8 +29,8 @@ public class MemberTableColumnModel extends DefaultTableColumnModel {
         col.setCellEditor(new MemberRoleCellEditor(ds));
         addColumn(col);
 
-        // column 1 - the member
-        col = new TableColumn(1);
+        // column 2 - the member
+        col = new TableColumn(2);
         col.setHeaderValue(tr("Refers to"));
         col.setResizable(true);
         col.setPreferredWidth(300);
@@ -31,8 +38,8 @@ public class MemberTableColumnModel extends DefaultTableColumnModel {
         col.setCellRenderer(new MemberTableMemberCellRenderer());
         addColumn(col);
 
-        // column 2 -
-        col = new TableColumn(2);
+        // column 3 - linked
+        col = new TableColumn(3);
         col.setHeaderValue("");
         col.setResizable(false);
         col.setPreferredWidth(20);
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
index 2260268..b2b23b2 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
@@ -126,7 +126,7 @@ public class MemberTableModel extends AbstractTableModel implements TableModelLi
         Collection<RelationMember> sel = getSelectedMembers();
         for (int i=0; i < members.size();i++) {
             if (members.get(i).getMember() == event.getPrimitive()) {
-                fireTableCellUpdated(i, 1 /* the column with the primitive name */);
+                fireTableCellUpdated(i, 2 /* the column with the primitive name */);
             }
         }
         setSelectedMembers(sel);
@@ -164,7 +164,7 @@ public class MemberTableModel extends AbstractTableModel implements TableModelLi
     }
 
     public int getColumnCount() {
-        return 3;
+        return 4;
     }
 
     public int getRowCount() {
@@ -174,10 +174,12 @@ public class MemberTableModel extends AbstractTableModel implements TableModelLi
     public Object getValueAt(int rowIndex, int columnIndex) {
         switch (columnIndex) {
         case 0:
-            return members.get(rowIndex).getRole();
+            return rowIndex + 1;
         case 1:
-            return members.get(rowIndex).getMember();
+            return members.get(rowIndex).getRole();
         case 2:
+            return members.get(rowIndex).getMember();
+        case 3:
             return getWayConnection(rowIndex);
         }
         // should not happen
@@ -185,8 +187,13 @@ public class MemberTableModel extends AbstractTableModel implements TableModelLi
     }
 
     @Override
+    public Class<?> getColumnClass(int columnIndex) {
+        return columnIndex == 0 ? Integer.class : Object.class;
+    }
+
+    @Override
     public boolean isCellEditable(int rowIndex, int columnIndex) {
-        return columnIndex == 0;
+        return columnIndex == 1;
     }
 
     @Override
