Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 32811)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 32898)
@@ -102,4 +102,5 @@
     public static final String X_STRING = "X|LON|LONGI|.*LONGITUDE.*|EASTING";
     public static final String Y_STRING = "Y|LAT|LATI|.*LATITUDE.*|NORTHING";
+    public static final String XY_STRING = "POINT";
 
     // The list of all ProjectionPatterns (filled at each constructor call)
@@ -107,5 +108,5 @@
 
     // CHECKSTYLE.OFF: LineLength
-    public static final ProjectionPatterns PRJ_WGS84 = new ProjectionPatterns("GPS|WGS84|°décimaux", Projections.getProjectionByCode("EPSG:4326"));
+    public static final ProjectionPatterns PRJ_WGS84 = new ProjectionPatterns("GPS|WGS84|°décimaux|GEO", Projections.getProjectionByCode("EPSG:4326"));
     public static final ProjectionPatterns PRJ_LAMBERT_93 = new ProjectionPatterns("LAMB93|L93", Projections.getProjectionByCode("EPSG:2154"));
     public static final ProjectionPatterns PRJ_LAMBERT_CC_9_ZONES = new LambertCC9ZonesProjectionPatterns("LAMBZ|CC(42|43|44|45|46|47|48|49|50)");
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionPatterns.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionPatterns.java	(revision 32811)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionPatterns.java	(revision 32898)
@@ -11,31 +11,35 @@
     private final Pattern xPattern;
     private final Pattern yPattern;
+    private final Pattern xyPattern;
     private final Projection projection;
-    
-    public ProjectionPatterns(Pattern xPattern, Pattern yPattern, Projection projection) {
+
+    public ProjectionPatterns(Pattern xPattern, Pattern yPattern, Pattern xyPattern, Projection projection) {
         this.xPattern = xPattern;
         this.yPattern = yPattern;
+        this.xyPattern = xyPattern;
         this.projection = projection;
         OdConstants.PROJECTIONS.add(this);
     }
 
-    public ProjectionPatterns(Pattern xPattern, Pattern yPattern) {
-        this(xPattern, yPattern, null);
-    }
-
     public ProjectionPatterns(String proj, Projection projection) {
-        this(getCoordinatePattern(OdConstants.X_STRING, proj), getCoordinatePattern(OdConstants.Y_STRING, proj), projection);
+        this(getCoordinatePattern(OdConstants.X_STRING, proj),
+             getCoordinatePattern(OdConstants.Y_STRING, proj),
+             getCoordinatePattern(OdConstants.XY_STRING, proj), projection);
     }
 
     public ProjectionPatterns(String proj) {
-        this(getCoordinatePattern(OdConstants.X_STRING, proj), getCoordinatePattern(OdConstants.Y_STRING, proj), null);
+        this(proj, null);
     }
-    
+
     public final Pattern getXPattern() {
         return xPattern;
     }
-    
+
     public final Pattern getYPattern() {
         return yPattern;
+    }
+
+    public final Pattern getXYPattern() {
+        return xyPattern;
     }
 
@@ -58,5 +62,5 @@
     @Override
     public String toString() {
-        return "[xPattern=" + xPattern + ", yPattern=" + yPattern + ", projection=" + projection + "]";
+        return "[xPattern=" + xPattern + ", yPattern=" + yPattern + ", xyPattern=" + xyPattern + ", projection=" + projection + ']';
     }
 }
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 32811)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 32898)
@@ -15,4 +15,6 @@
 import java.util.Locale;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.openstreetmap.josm.Main;
@@ -32,4 +34,7 @@
     private static final NumberFormat formatUK = NumberFormat.getInstance(Locale.UK);
 
+    private static final String COOR = "(\\-?\\d+(?:[\\.,]\\d+)?)";
+    private static final Pattern LATLON_PATTERN = Pattern.compile("^"+COOR+"[,;]?\\s*"+COOR+"$");
+
     protected final SpreadSheetHandler handler;
 
@@ -68,5 +73,5 @@
         @Override
         public String toString() {
-            return "CoordinateColumns [proj=" + proj + ", xCol=" + xCol + ", yCol=" + yCol + "]";
+            return "CoordinateColumns [proj=" + proj + ", xCol=" + xCol + ", yCol=" + yCol + ']';
         }
     }
@@ -91,5 +96,10 @@
                 }
                 CoordinateColumns col = columns.isEmpty() ? null : columns.get(columns.size()-1);
-                if (pp.getXPattern().matcher(header[i]).matches()) {
+                if (pp.getXYPattern().matcher(header[i]).matches()) {
+                    CoordinateColumns coorCol = addCoorColIfNeeded(columns, col);
+                    coorCol.xCol = i;
+                    coorCol.yCol = i;
+                    break;
+                } else if (pp.getXPattern().matcher(header[i]).matches()) {
                     addCoorColIfNeeded(columns, col).xCol = i;
                     break;
@@ -184,5 +194,15 @@
                     for (CoordinateColumns c : columns) {
                         EastNorth en = ens.get(c);
-                        if (i == c.xCol) {
+                        if (i == c.xCol && i == c.yCol) {
+                            Matcher m = LATLON_PATTERN.matcher(fields[i]);
+                            if (m.matches()) {
+                                coordinate = true;
+                                ens.put(c, new EastNorth(parseDouble(m.group(2)), parseDouble(m.group(1))));
+                                if (handler != null) {
+                                    handler.setXCol(i);
+                                    handler.setYCol(i);
+                                }
+                            }
+                        } else if (i == c.xCol) {
                             coordinate = true;
                             ens.put(c, new EastNorth(parseDouble(fields[i]), en.north()));
