diff -X xclude -urN org/roadmap_editor/src/mk roadmap_editor/src/mk
--- org/roadmap_editor/src/mk	1970-01-01 02:00:00.000000000 +0200
+++ roadmap_editor/src/mk	2008-07-09 23:20:16.000000000 +0300
@@ -0,0 +1 @@
+make SHAPEFILES=NO MODE=DEBUG SSD=YES FREEMAP_IL=YES BIDI=YES DESKTOP=GTK2 modules
diff -X xclude -urN org/roadmap_editor/src/objects roadmap_editor/src/objects
--- org/roadmap_editor/src/objects	2007-01-07 12:01:12.000000000 +0200
+++ roadmap_editor/src/objects	2008-07-10 21:08:50.000000000 +0300
@@ -20,6 +20,7 @@
 O 160
 A zoomin
 B -4 -4 28 28
+T
 
 N zoomout_button
 I rm_zoomout
@@ -27,6 +28,7 @@
 O 160
 A zoomout
 B -4 -4 28 28
+T
 
 N gps_button
 I rm_gps
@@ -82,3 +84,10 @@
 O 200
 B -4 -4 28 28
 R
+
+N scale
+I scale
+O 150
+P 9940 -38
+R
+
diff -X xclude -urN org/roadmap_editor/src/objects_wide roadmap_editor/src/objects_wide
--- org/roadmap_editor/src/objects_wide	2007-01-07 12:01:12.000000000 +0200
+++ roadmap_editor/src/objects_wide	2008-07-10 21:08:58.000000000 +0300
@@ -82,3 +82,10 @@
 O 200
 B -4 -4 28 28
 R
+
+N scale
+I scale
+O 150
+P 9940 -38
+R
+
diff -X xclude -urN org/roadmap_editor/src/roadmap_display.c roadmap_editor/src/roadmap_display.c
--- org/roadmap_editor/src/roadmap_display.c	2007-04-13 12:04:31.000000000 +0300
+++ roadmap_editor/src/roadmap_display.c	2008-07-10 20:25:26.000000000 +0300
@@ -77,6 +77,7 @@
 #define SIGN_BOTTOM   0
 #define SIGN_TOP      1
 #define SIGN_CENTER   2
+#define SIGN_TOP_RIGHT 3
 
 typedef struct {
 
@@ -125,6 +126,8 @@
     ROADMAP_SIGN("GPS", "Approach",        SIGN_TOP, "Approaching %N, %C|Approaching %N", "#698b69", "#ffffff"),
     ROADMAP_SIGN(NULL, "Selected Street", SIGN_BOTTOM, "%F", "#ffff00", "#000000"),
     ROADMAP_SIGN(NULL, "Info",  SIGN_CENTER, NULL, "#ffff00", "#000000"),
+    ROADMAP_SIGN(NULL, "Scale",  SIGN_BOTTOM, NULL, "#ffff80", "#000000"),
+    ROADMAP_SIGN(NULL, "Distance",  SIGN_TOP_RIGHT, NULL, "#ffff80", "#000000"),
     ROADMAP_SIGN(NULL, "Error", SIGN_CENTER, NULL, "#ff0000", "#ffffff"),
     ROADMAP_SIGN("GPS", "Driving Instruction", SIGN_TOP, "In %D %I", "#ff0000", "#ffffff"),
     ROADMAP_SIGN(NULL, NULL, 0, NULL, NULL, NULL)
@@ -320,13 +323,20 @@
         roadmap_math_coordinate (&sign->position, points);
         roadmap_math_rotate_coordinates (1, points);
 
-        if (sign->where == SIGN_TOP) {
+        if ((sign->where == SIGN_TOP)||(sign->where == SIGN_TOP_RIGHT)) {
         
             points[1].x = 5 + (screen_width - sign_width) / 2;
             points[2].x = points[1].x - 5;
             points[4].x = (screen_width + sign_width) / 2;
             points[6].x = points[1].x + 10;
 
+			if (sign->where == SIGN_TOP_RIGHT) {
+				points[1].x += (screen_width - sign_width) / 4;
+				points[2].x += (screen_width - sign_width) / 4;
+				points[4].x += (screen_width - sign_width) / 4;
+				points[6].x += (screen_width - sign_width) / 4;
+			}
+
             text_position.x = points[2].x + 4;
             
         } else if (points[0].x < screen_width / 2) {
@@ -351,7 +361,7 @@
         points[5].x = points[4].x;
     
 
-        if (sign->where == SIGN_TOP || (points[0].y > height / 2)) {
+        if (sign->where == SIGN_TOP || sign->where == SIGN_TOP_RIGHT || (points[0].y > height / 2)) {
 
             points[1].y = sign_height + 5;
             points[3].y = 5;
@@ -382,6 +392,13 @@
         points[2].x = points[1].x;
         points[3].x = points[0].x;
     
+		if (sign->where == SIGN_TOP_RIGHT) {
+			points[0].x += (screen_width - sign_width) / 4;
+			points[1].x += (screen_width - sign_width) / 4;
+			points[2].x += (screen_width - sign_width) / 4;
+			points[3].x += (screen_width - sign_width) / 4;
+		}
+
         switch (sign->where)
         {
            case SIGN_BOTTOM:
@@ -390,6 +407,7 @@
               break;
     
            case SIGN_TOP:
+           case SIGN_TOP_RIGHT:
     
               points[0].y = 5;
               break;
diff -X xclude -urN org/roadmap_editor/src/roadmap_log.c roadmap_editor/src/roadmap_log.c
--- org/roadmap_editor/src/roadmap_log.c	2008-02-04 12:21:52.000000000 +0200
+++ roadmap_editor/src/roadmap_log.c	2008-03-27 19:45:57.000000000 +0200
@@ -170,7 +170,7 @@
       vsprintf(msg, format, ap);
       sprintf (str, "%d %c%s %s, line %d %s",
          time(NULL), saved, category->prefix, source, line, msg);
-      roadmap_messagebox("Fatal Error", str);
+//      roadmap_messagebox("Fatal Error", str);
    }
 }
 
diff -X xclude -urN org/roadmap_editor/src/roadmap_math.c roadmap_editor/src/roadmap_math.c
--- org/roadmap_editor/src/roadmap_math.c	2007-08-19 17:01:52.000000000 +0300
+++ roadmap_editor/src/roadmap_math.c	2008-07-10 19:27:32.000000000 +0300
@@ -615,7 +615,8 @@
                   RoadMapContext.zoom_x: RoadMapContext.zoom_y;
 
    if (use_map_units) {
-      scale = res * RoadMapContext.units->unit_per_latitude * use_map_units;
+//      scale = res * RoadMapContext.units->unit_per_latitude * use_map_units;
+      scale = res * RoadMapContext.units->unit_per_longitude * use_map_units;
    } else {
       scale = res * (1.0 * DOTS_PER_INCH * INCHES_PER_DEGREE / 1000000);
    }
diff -X xclude -urN org/roadmap_editor/src/roadmap_screen.c roadmap_editor/src/roadmap_screen.c
--- org/roadmap_editor/src/roadmap_screen.c	2008-02-04 12:21:52.000000000 +0200
+++ roadmap_editor/src/roadmap_screen.c	2008-07-10 21:10:00.000000000 +0300
@@ -1697,6 +1697,10 @@
 
     roadmap_label_start();
 
+	roadmap_display_text("Scale", "%d", roadmap_math_get_scale(120));
+	if(roadmap_trip_get_airdistance()==-1) {
+		roadmap_display_hide("Distance");
+	} else roadmap_display_text("Distance", "%d", roadmap_trip_get_airdistance());
 #ifdef DEBUG_TIME
     end_time = NOPH_System_currentTimeMillis();
     printf ("roadmap_screen_repaint start drawing squares %d ms\n", end_time - start_time);
diff -X xclude -urN org/roadmap_editor/src/roadmap_screen_obj.c roadmap_editor/src/roadmap_screen_obj.c
--- org/roadmap_editor/src/roadmap_screen_obj.c	2007-06-04 21:44:52.000000000 +0300
+++ roadmap_editor/src/roadmap_screen_obj.c	2008-07-10 19:51:40.000000000 +0300
@@ -466,12 +466,18 @@
    pos->x = object->pos_x;
    pos->y = object->pos_y;
 
+   if ((pos->x>9000) && (pos->x<11000)) {
+	   pos->x += roadmap_canvas_width ()/2 - 10000;
+   } else
    if (pos->x < 0) {
       pos->x += roadmap_canvas_width ();
    } else {
       pos->x += OffsetX;
    }
 
+   if ((pos->y>9000) && (pos->y<11000)) {
+	   pos->y += roadmap_canvas_height ()/2 - 10000;
+   } else
    if (pos->y < 0) {
       pos->y += roadmap_canvas_height ();
    } else {
diff -X xclude -urN org/roadmap_editor/src/roadmap_start.c roadmap_editor/src/roadmap_start.c
--- org/roadmap_editor/src/roadmap_start.c	2008-02-04 12:21:52.000000000 +0200
+++ roadmap_editor/src/roadmap_start.c	2008-07-10 20:05:40.000000000 +0300
@@ -120,6 +120,8 @@
 static RoadMapStartSubscriber  RoadMapStartSubscribers = NULL;
 static RoadMapScreenSubscriber roadmap_start_prev_after_refresh = NULL;
 
+static int NoNav=1;
+
 /* The menu and toolbar callbacks: --------------------------------------- */
 
 static void roadmap_start_periodic (void);
@@ -170,6 +172,10 @@
     roadmap_screen_rotate (-10);
 }
 
+static void roadmap_start_togglenav (void) {
+	NoNav=!NoNav;
+}
+
 static void roadmap_start_about (void) {
 
    char about[500];
@@ -240,14 +246,14 @@
 
 static void roadmap_start_navigate (void) {
     
-    navigate_main_calc_route ();
+    if(!NoNav)navigate_main_calc_route ();
 }
 
 static void roadmap_start_set_destination (void) {
 
     roadmap_trip_set_selection_as ("Destination");
     roadmap_screen_refresh();
-    navigate_main_calc_route ();
+    if(!NoNav)navigate_main_calc_route ();
 }
 
 static void roadmap_start_set_departure (void) {
@@ -543,6 +549,9 @@
    {"addvoicenote", "Add a voice note", NULL, NULL,
       "Add a voice note", editor_notes_add_voice},
 
+   {"togglenav", "Toggle Routing", "V", NULL,
+	   "Toggle route calculation", roadmap_start_togglenav},
+
    {NULL, NULL, NULL, NULL, NULL, NULL}
 };
 
@@ -624,6 +633,7 @@
    "enablevoice",
    "nonavigation",
    "navigation",
+   "togglenav",
 
    RoadMapFactorySeparator,
 
@@ -814,7 +824,7 @@
    "S"               ROADMAP_MAPPED_TO "starttrip",
    /* T Unused. */
    "U"               ROADMAP_MAPPED_TO "gpsnorthup",
-   /* V Unused. */
+   "V"				 ROADMAP_MAPPED_TO "togglenav",
    "W"               ROADMAP_MAPPED_TO "addaswaypoint",
    "X"               ROADMAP_MAPPED_TO "intersection",
    "Y"               ROADMAP_MAPPED_TO "savesscreenshot",
diff -X xclude -urN org/roadmap_editor/src/roadmap_trip.c roadmap_editor/src/roadmap_trip.c
--- org/roadmap_editor/src/roadmap_trip.c	2007-08-19 17:06:47.000000000 +0300
+++ roadmap_editor/src/roadmap_trip.c	2008-07-10 21:14:36.000000000 +0300
@@ -1210,3 +1210,12 @@
 }
 #endif
 
+int roadmap_trip_get_airdistance(void) {
+	RoadMapPosition *p1, *p2;
+	p1=roadmap_trip_get_position("Departure");
+	p2=roadmap_trip_get_position("Destination");
+	if(p1 && p2) {
+		return roadmap_math_distance(p1,p2);
+	}
+	return -1;
+}
diff -X xclude -urN org/roadmap_editor/src/roadmap_trip.h roadmap_editor/src/roadmap_trip.h
--- org/roadmap_editor/src/roadmap_trip.h	2006-08-18 20:31:32.000000000 +0300
+++ roadmap_editor/src/roadmap_trip.h	2008-07-10 21:12:41.000000000 +0300
@@ -79,5 +79,6 @@
 
 void roadmap_trip_save_screenshot (void);
 
+int roadmap_trip_get_airdistance(void);
 #endif // INCLUDE__ROADMAP_TRIP__H
 
