Index: applications/editors/josm/plugins/opendata/includes/org/jopendocument/io/SaxContentUnmarshaller.java
===================================================================
--- applications/editors/josm/plugins/opendata/includes/org/jopendocument/io/SaxContentUnmarshaller.java	(revision 29297)
+++ applications/editors/josm/plugins/opendata/includes/org/jopendocument/io/SaxContentUnmarshaller.java	(revision 29298)
@@ -285,5 +285,5 @@
             final TableTableCell cell = new TableTableCell();
             cell.setTableStyleName(attribs.getValue("table:style-name"));
-            //cell.setTableNumberColumnsRepeated(attribs.getValue("table:number-columns-repeated"));
+            cell.setTableNumberColumnsRepeated(attribs.getValue("table:number-columns-repeated"));
             //cell.setTableNumberColumnsSpanned(attribs.getValue("table:number-columns-spanned"));
             //cell.setTableNumberRowsSpanned(attribs.getValue("table:number-rows-spanned"));
Index: applications/editors/josm/plugins/opendata/includes/org/jopendocument/model/table/TableTableCell.java
===================================================================
--- applications/editors/josm/plugins/opendata/includes/org/jopendocument/model/table/TableTableCell.java	(revision 29297)
+++ applications/editors/josm/plugins/opendata/includes/org/jopendocument/model/table/TableTableCell.java	(revision 29298)
@@ -22,7 +22,18 @@
     private TableTableColumn column;
 
+    protected int tableNumberColumnsRepeated = 1;
+    
     protected String tableStyleName;
 
     private TextP textP;
+
+    protected TableTableCell cloneCell() {
+        final TableTableCell c = new TableTableCell();
+
+        c.tableNumberColumnsRepeated = this.tableNumberColumnsRepeated;
+        c.tableStyleName = this.tableStyleName;
+        c.textP = this.textP;
+        return c;
+    }
 
     private void computeStyle() {
@@ -48,6 +59,26 @@
     }
 
+    /**
+     * Gets the value of the tableNumberColumnsRepeated property.
+     * 
+     */
+    public int getTableNumberColumnsRepeated() {
+        return this.tableNumberColumnsRepeated;
+    }
+    
     public TextP getTextP() {
         return this.textP;
+    }
+
+    /**
+     * Sets the value of the tableNumberColumnsRepeated property.
+     * 
+     * @param value allowed object is {@link String }
+     * 
+     */
+    public void setTableNumberColumnsRepeated(final String value) {
+        if (value != null) {
+            this.tableNumberColumnsRepeated = Integer.valueOf(value);
+        }
     }
 
@@ -64,5 +95,4 @@
 
     }
-
 
     public void setTextP(final TextP p) {
Index: applications/editors/josm/plugins/opendata/includes/org/jopendocument/model/table/TableTableRow.java
===================================================================
--- applications/editors/josm/plugins/opendata/includes/org/jopendocument/model/table/TableTableRow.java	(revision 29297)
+++ applications/editors/josm/plugins/opendata/includes/org/jopendocument/model/table/TableTableRow.java	(revision 29298)
@@ -16,4 +16,6 @@
 package org.jopendocument.model.table;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Vector;
 
@@ -23,10 +25,10 @@
 public class TableTableRow {
     static int count = 0;
-
+    ArrayList<TableTableCell> allCells;
 
     Vector<TableTableCell> cells = new Vector<TableTableCell>();
 
     int id = 0;
-
+    
     protected int tableNumberRowsRepeated = 1;
 
@@ -39,4 +41,42 @@
         this.cells.add(c);
 
+    }
+    
+    /**
+     * Compute AllCell except the last one
+     */
+    void computeAllCells() {
+        this.allCells = new ArrayList<TableTableCell>();
+        for (int index = 0; index < this.cells.size(); index++) {
+            final TableTableCell c = this.cells.get(index);
+            // for (TableTableCell c : cells) {
+            //final int colPosition = this.allCells.size();
+            int repeated = c.getTableNumberColumnsRepeated();
+            // la derniere colonne n'est repétée que dans la limite de la zone d'impression
+            // sinon, on s'en coltine des milliers
+            if (index == this.cells.size() - 1) {
+                //repeated = this.getTable().getPrintStopCol() - this.allCells.size() + 1;
+                // Patch JOSM open data : do not care about last cell
+                repeated = 0;
+            }
+            for (int i = 0; i < repeated; i++) {
+             // Patch JOSM open data : do not care about column
+                //final TableTableColumn col = this.table.getColumnAtPosition(colPosition + i);
+                final TableTableCell cc = c.cloneCell();
+                //cc.setRowAndColumn(this, col);
+                this.allCells.add(cc);
+            }
+        }
+        // }}
+        // System.err.println("Computed:" + allCells.size() + " :" + allCells);
+    }
+    
+    public Collection<TableTableCell> getAllCells() {
+
+        if (this.allCells == null) {
+            this.computeAllCells();
+        }
+        
+        return this.allCells;
     }
 
@@ -56,5 +96,4 @@
     // return cells;
     // }
-
 
     public String getText() {
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 29297)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/OdsReader.java	(revision 29298)
@@ -24,5 +24,7 @@
 import org.jopendocument.model.office.OfficeSpreadsheet;
 import org.jopendocument.model.table.TableTable;
+import org.jopendocument.model.table.TableTableCell;
 import org.jopendocument.model.table.TableTableRow;
+import org.jopendocument.model.text.TextP;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -36,5 +38,5 @@
 	private int rowIndex;
 	
-	private static final String SEP = "TextP:\\[";
+	private static final String SEP = "TextP:[";
 	
 	public OdsReader(SpreadSheetHandler handler) {
@@ -79,9 +81,11 @@
 			List<String> result = new ArrayList<String>();
 			boolean allFieldsBlank = true;
-			for (String text : row.getText().replaceFirst(SEP, "").replaceAll("\\]", "").replaceAll("null", SEP).split(SEP)) {
-				result.add(text);
-				if (allFieldsBlank && !text.isEmpty()) {
-					allFieldsBlank = false;
-				}
+			for (TableTableCell cell : row.getAllCells()) {
+			    TextP textP = cell.getTextP();
+			    String text = textP == null ? "" : textP.toString().replace(SEP, "").replace("]", "").replace("null", "").trim();
+                result.add(text);
+                if (allFieldsBlank && !text.isEmpty()) {
+                    allFieldsBlank = false;
+                }
 			}
 			
