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 29115)
+++ 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;
+                }
 			}
 			
