diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
index dc3ac7d7d1528fa98d9d9124a11991c8fe7e6d36..1d1c139bb8fa87b3824c93b7ca01f8f7ecb88995 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
@@ -16,7 +16,8 @@
 
 package ch.systemsx.cisd.bds.hcs;
 
-import ch.systemsx.cisd.common.utilities.StringUtilities;
+import ch.systemsx.cisd.common.geometry.ConversionUtils;
+import ch.systemsx.cisd.common.geometry.Point;
 
 /**
  * A location in (x, y) coordinate space, specified in integer precision.
@@ -76,20 +77,11 @@ public final class Location
      */
     public static final Location tryCreateLocationFromMatrixCoordinate(final String coordinate)
     {
-        assert coordinate != null : "Coordinate can not be null.";
-        final String[] split = StringUtilities.splitMatrixCoordinate(coordinate);
-        if (split == null)
-        {
-            return null;
-        }
         try
         {
-            final String letter = split[0];
-            assert letter.length() == 1 : "Only one letter is supported right now.";
-            final int y = letter.toLowerCase().charAt(0) - 'a' + 1;
-            final int x = Integer.parseInt(split[1]);
-            return new Location(x, y);
-        } catch (NumberFormatException ex)
+            Point point = ConversionUtils.parseSpreadsheetLocation(coordinate);
+            return new Location(point.getY() + 1, point.getX() + 1);
+        } catch (IllegalArgumentException ex)
         {
             return null;
         }
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
index a95002aad9c245fc69c8613583d38c113166c155..7e3cb097282b63e83968c8e0f0d5cb5e223d3eee 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
@@ -94,15 +94,6 @@ public final class LocationTest
     @Test
     public final void testCreateLocationFromMatrixCoordinate()
     {
-        boolean fail = true;
-        try
-        {
-            Location.tryCreateLocationFromMatrixCoordinate(null);
-        } catch (AssertionError ex)
-        {
-            fail = false;
-        }
-        assertEquals(false, fail);
         assertNull(Location.tryCreateLocationFromMatrixCoordinate(""));
         assertNull(Location.tryCreateLocationFromMatrixCoordinate("8"));
         assertNull(Location.tryCreateLocationFromMatrixCoordinate("M"));