Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 6349)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 6350)
@@ -30,8 +30,9 @@
 
 /**
- * Handler for load_and_zoom request.
+ * Handler for {@code load_and_zoom} and {@code zoom} requests.
+ * @since 3707
  */
-public class LoadAndZoomHandler extends RequestHandler
-{
+public class LoadAndZoomHandler extends RequestHandler {
+    
     /**
      * The remote control command name used to load data and zoom.
@@ -56,6 +57,5 @@
 
     @Override
-    public String getPermissionMessage()
-    {
+    public String getPermissionMessage() {
         String msg = tr("Remote Control has been asked to load data from the API.") +
                 "<br>" + tr("Bounding box: ") + new BBox(minlon, minlat, maxlon, maxlat).toStringCSV(", ");
@@ -67,12 +67,10 @@
 
     @Override
-    public String[] getMandatoryParams()
-    {
+    public String[] getMandatoryParams() {
         return new String[] { "bottom", "top", "left", "right" };
     }
 
     @Override
-    public String[] getOptionalParams()
-    {
+    public String[] getOptionalParams() {
         return new String[] {"new_layer", "addtags", "select", "zoom_mode"};
     }
@@ -96,6 +94,5 @@
 
     @Override
-    protected void handleRequest() throws RequestHandlerErrorException
-    {
+    protected void handleRequest() throws RequestHandlerErrorException {
         DownloadTask osmTask = new DownloadOsmTask();
         try {
@@ -241,4 +238,17 @@
         } catch (NumberFormatException e) {
             throw new RequestHandlerBadRequestException("NumberFormatException ("+e.getMessage()+")");
+        }
+        
+        // Current API 0.6 check: "The latitudes must be between -90 and 90"
+        if (!LatLon.isValidLat(minlat) || !LatLon.isValidLat(maxlat)) {
+            throw new RequestHandlerBadRequestException(tr("The latitudes must be between {0} and {1}", -90d, 90d));
+        }
+        // Current API 0.6 check: "longitudes between -180 and 180"
+        if (!LatLon.isValidLon(minlon) || !LatLon.isValidLon(maxlon)) {
+            throw new RequestHandlerBadRequestException(tr("The longitudes must be between {0} and {1}", -180d, 180d));
+        }
+        // Current API 0.6 check: "the minima must be less than the maxima"
+        if (minlat > maxlat || minlon > maxlon) {
+            throw new RequestHandlerBadRequestException(tr("The minima must be less than the maxima"));
         }
 
