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 4a4ad45ec8f91d7792105b3783147c70e444d34f..a18f6750fcb17b809779b612ae2dbff0eb9ebbab 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/Location.java
@@ -45,18 +45,25 @@ public final class Location
         this.y = y;
     }
 
-    /** For given <var>position</var> in given <code>geometry</code> returns corresponding <code>Location</code>. */
-    public static final Location createLocationFromPosition(final int position, final Geometry geometry)
+    /**
+     * For given <var>position</var> in given <code>geometry</code> returns corresponding <code>Location</code>.
+     * 
+     * @return <code>null</code> if position is out of range.
+     */
+    public static final Location tryCreateLocationFromPosition(final int position, final Geometry geometry)
     {
         assert geometry != null : "Given geometry can not be null.";
         final int columns = geometry.getColumns();
         final int max = columns * geometry.getRows();
-        assert position > 0 && position < max : String.format("Given position %d is out of range (%s).", position,
-                geometry);
-        final int modulo = position % columns;
-        final int x = modulo == 0 ? columns : modulo;
-        final int y = (int) Math.ceil(position / (float) columns);
-        return new Location(x, y);
+        // Given position is within the range.
+        if (position > 0 && position < max)
+        {
+            final int modulo = position % columns;
+            final int x = modulo == 0 ? columns : modulo;
+            final int y = (int) Math.ceil(position / (float) columns);
+            return new Location(x, y);
+        }
+        return null;
     }
 
     /**
@@ -65,7 +72,7 @@ public final class Location
      * 
      * @return <code>null</code> if given <var>coordinate</var> is not a matrix coordinate.
      */
-    public static final Location createLocationFromMatrixCoordinate(final String coordinate)
+    public static final Location tryCreateLocationFromMatrixCoordinate(final String coordinate)
     {
         assert coordinate != null : "Coordinate can not be null.";
         final String[] split = StringUtilities.splitMatrixCoordinate(coordinate);
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 36b90132b913a5114bfe73b0fb2790cf1332f89a..7854fb14ce0052f2edf4a3c54596bb89549b4424 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/LocationTest.java
@@ -71,19 +71,19 @@ public final class LocationTest
         final Geometry geometry = new Geometry(4, 5);
         try
         {
-            Location.createLocationFromPosition(1, null);
+            Location.tryCreateLocationFromPosition(1, null);
             fail("Null geometry not allowed.");
         } catch (AssertionError ex)
         {
             // Nothing to do here.
         }
-        assertEquals(new Location(2, 3), Location.createLocationFromPosition(12, geometry));
-        assertEquals(new Location(5, 3), Location.createLocationFromPosition(15, geometry));
-        assertEquals(new Location(2, 1), Location.createLocationFromPosition(2, geometry));
-        assertEquals(new Location(1, 2), Location.createLocationFromPosition(6, geometry));
+        assertEquals(new Location(2, 3), Location.tryCreateLocationFromPosition(12, geometry));
+        assertEquals(new Location(5, 3), Location.tryCreateLocationFromPosition(15, geometry));
+        assertEquals(new Location(2, 1), Location.tryCreateLocationFromPosition(2, geometry));
+        assertEquals(new Location(1, 2), Location.tryCreateLocationFromPosition(6, geometry));
         try
         {
-            Location.createLocationFromPosition(100, geometry);
+            Location.tryCreateLocationFromPosition(100, geometry);
             fail("Position is out of range.");
         } catch (AssertionError ex)
         {
@@ -96,17 +96,17 @@ public final class LocationTest
     {
         try
         {
-            Location.createLocationFromMatrixCoordinate(null);
+            Location.tryCreateLocationFromMatrixCoordinate(null);
             fail("Coordinate can not be null.");
         } catch (AssertionError ex)
         {
             // Nothing to do here.
         }
-        assertNull(Location.createLocationFromMatrixCoordinate(""));
-        assertNull(Location.createLocationFromMatrixCoordinate("8"));
-        assertNull(Location.createLocationFromMatrixCoordinate("M"));
-        assertEquals(new Location(2, 1), Location.createLocationFromMatrixCoordinate("A02"));
-        assertEquals(new Location(7, 26), Location.createLocationFromMatrixCoordinate("z7"));
-        assertEquals(new Location(34, 15), Location.createLocationFromMatrixCoordinate("O34"));
+        assertNull(Location.tryCreateLocationFromMatrixCoordinate(""));
+        assertNull(Location.tryCreateLocationFromMatrixCoordinate("8"));
+        assertNull(Location.tryCreateLocationFromMatrixCoordinate("M"));
+        assertEquals(new Location(2, 1), Location.tryCreateLocationFromMatrixCoordinate("A02"));
+        assertEquals(new Location(7, 26), Location.tryCreateLocationFromMatrixCoordinate("z7"));
+        assertEquals(new Location(34, 15), Location.tryCreateLocationFromMatrixCoordinate("O34"));
     }
 }