diff --git a/common/basicframe.cpp b/common/basicframe.cpp
index b7f21f204d..c2986e44ea 100644
--- a/common/basicframe.cpp
+++ b/common/basicframe.cpp
@@ -278,6 +278,37 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event )
 #endif
 }
 
+/*
+ * Function OnSelectPreferredEditor
+ * Open a dialog to select the preferred editor that will be used in Kicad
+ * to edit or display files (reports ... )
+ * The full filename editor is saved in configuration (global params)
+ */
+void EDA_BASE_FRAME::OnSelectPreferredEditor( wxCommandEvent& event )
+{
+    wxFileName fn = wxGetApp().m_EditorName;
+    wxString wildcard( wxT( "*" ) );
+
+#ifdef __WINDOWS__
+    wildcard += wxT( ".exe" );
+#endif
+
+    wildcard = _( "Executable file (" ) + wildcard + wxT( ")|" ) + wildcard;
+
+    wxFileDialog dlg( this, _( "Select Prefered Editor" ), fn.GetPath(),
+                      fn.GetFullName(), wildcard,
+                      wxFD_OPEN | wxFD_FILE_MUST_EXIST );
+
+    if( dlg.ShowModal() == wxID_CANCEL )
+        return;
+
+    wxASSERT( wxGetApp().m_EDA_CommonConfig );
+
+    wxConfig* cfg = wxGetApp().m_EDA_CommonConfig;
+    wxGetApp().m_EditorName = dlg.GetPath();
+    cfg->Write( wxT( "Editor" ), wxGetApp().m_EditorName );
+}
+
 
 /*
  *
diff --git a/common/build_version.cpp b/common/build_version.cpp
index a3e10c24de..db1a49fa40 100644
--- a/common/build_version.cpp
+++ b/common/build_version.cpp
@@ -6,7 +6,7 @@
 #endif
 
 #ifndef KICAD_BUILD_VERSION
-#define KICAD_BUILD_VERSION "(2011-03-11 BZR 2884)"
+#define KICAD_BUILD_VERSION "(2011-03-12)"
 #endif
 
 //#define VERSION_STABILITY      "stable"
diff --git a/demos/complex_hierarchy/complex_hierarchy.pro b/demos/complex_hierarchy/complex_hierarchy.pro
index 7e43fef399..8a9a2d2cbf 100644
--- a/demos/complex_hierarchy/complex_hierarchy.pro
+++ b/demos/complex_hierarchy/complex_hierarchy.pro
@@ -1,6 +1,6 @@
-update=01/04/2010 16:21:47
+update=12/03/2011 18:54:54
 version=1
-last_client=eeschema
+last_client=pcbnew
 [cvpcb]
 version=1
 NetITyp=0
@@ -11,72 +11,6 @@ LibDir=
 NetType=0
 [cvpcb/libraries]
 EquName1=devcms
-[pcbnew]
-version=1
-PadDrlX=320
-PadDimH=600
-PadDimV=600
-PadForm=1
-PadMask=14745599
-ViaDiam=450
-ViaDril=250
-Isol=60
-Countlayer=2
-Lpiste=170
-RouteTo=15
-RouteBo=0
-TypeVia=3
-Segm45=1
-Racc45=1
-Unite=0
-SegFill=1
-SegAffG=0
-NewAffG=1
-PadFill=1
-PadAffG=1
-PadSNum=1
-ModAffC=0
-ModAffT=0
-PcbAffT=0
-SgPcb45=1
-TxtPcbV=800
-TxtPcbH=600
-TxtModV=600
-TxtModH=600
-TxtModW=120
-HPGLnum=1
-HPGdiam=15
-HPGLSpd=20
-HPGLrec=2
-HPGLorg=0
-GERBmin=15
-VEgarde=100
-DrawLar=150
-EdgeLar=150
-TxtLar=120
-MSegLar=150
-ForPlot=1
-WpenSer=10
-UserGrX=0,01
-UserGrY=0,01
-UserGrU=1
-DivGrPc=1
-TimeOut=600
-MaxLnkS=3
-ShowRat=0
-ShowMRa=1
-[pcbnew/libraries]
-LibDir=
-LibName1=sockets
-LibName2=connect
-LibName3=discret
-LibName4=pin_array
-LibName5=divers
-LibName6=libcms
-LibName7=display
-LibName8=valves
-LibName9=led
-LibName10=dip_sockets
 [general]
 version=1
 [eeschema]
@@ -123,3 +57,32 @@ LibName5=linear
 LibName6=regul
 LibName7=interface
 LibName8=special
+[pcbnew]
+version=1
+PadDrlX=320
+PadDimH=600
+PadDimV=600
+BoardThickness=630
+TxtPcbV=800
+TxtPcbH=600
+TxtModV=600
+TxtModH=600
+TxtModW=120
+VEgarde=100
+DrawLar=150
+EdgeLar=150
+TxtLar=120
+MSegLar=150
+LastNetListRead=
+[pcbnew/libraries]
+LibDir=
+LibName1=sockets
+LibName2=connect
+LibName3=discret
+LibName4=pin_array
+LibName5=divers
+LibName6=libcms
+LibName7=display
+LibName8=valves
+LibName9=led
+LibName10=dip_sockets
diff --git a/gerbview/CMakeLists.txt b/gerbview/CMakeLists.txt
index 46c56f15d1..dc8442eb26 100644
--- a/gerbview/CMakeLists.txt
+++ b/gerbview/CMakeLists.txt
@@ -13,6 +13,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}
 ###
 # Sources
 ###
+
 set(DIALOGS_SRCS
     dialogs/gerbview_dialog_display_options_frame_base.cpp
     dialogs/gerbview_dialog_display_options_frame.cpp
@@ -35,9 +36,9 @@ set(GERBVIEW_SRCS
     edit.cpp
     export_to_pcbnew.cpp
     files.cpp
-    gerberframe.cpp
-    gerbview_config.cpp
     gerbview.cpp
+    gerbview_config.cpp
+    gerbview_frame.cpp
     hotkeys.cpp
     initpcb.cpp
     locate.cpp
@@ -50,7 +51,8 @@ set(GERBVIEW_SRCS
     rs274d.cpp
     rs274x.cpp
     select_layers_to_pcb.cpp
-    toolbars_gerber.cpp )
+    toolbars_gerber.cpp
+    )
 
 ###
 # We need some extra sources from pcbnew
diff --git a/gerbview/block.cpp b/gerbview/block.cpp
index 015aaa41a6..49ee200860 100644
--- a/gerbview/block.cpp
+++ b/gerbview/block.cpp
@@ -1,6 +1,6 @@
-/**********************************************************/
-/* Block operations: displacement, rotation, deletion ... */
-/**********************************************************/
+/**********************************/
+/* Block operations: displacement */
+/**********************************/
 
 /*
  * This program source code file is part of KICAD, a free EDA CAD application.
@@ -28,15 +28,14 @@
 
 
 #include "fctsys.h"
-#include "gr_basic.h"
 #include "common.h"
 #include "class_drawpanel.h"
-#include "trigo.h"
 #include "confirm.h"
 
 #include "gerbview.h"
 #include "class_gerber_draw_item.h"
 
+#include "wx/debug.h"
 
 #define BLOCK_COLOR BROWN
 
@@ -46,6 +45,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
 
 /* Return the block command (BLOCK_MOVE, BLOCK_COPY...) corresponding to
  *  the key (ALT, SHIFT ALT ..)
+ * Currently, only block move and block zoom is supported
  */
 int GERBVIEW_FRAME::ReturnBlockCommand( int key )
 {
@@ -62,17 +62,9 @@ int GERBVIEW_FRAME::ReturnBlockCommand( int key )
         break;
 
     case GR_KB_SHIFT:
-        break;
-
     case GR_KB_CTRL:
-        break;
-
     case GR_KB_SHIFTCTRL:
-        cmd = BLOCK_DELETE;
-        break;
-
     case GR_KB_ALT:
-        cmd = BLOCK_COPY;
         break;
 
     case MOUSE_MIDDLE:
@@ -87,25 +79,13 @@ int GERBVIEW_FRAME::ReturnBlockCommand( int key )
 /* Routine to handle the BLOCK PLACE command */
 void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC )
 {
-    bool err = false;
+    wxASSERT( DrawPanel->IsMouseCaptured() );
 
-    if( !DrawPanel->IsMouseCaptured() )
-    {
-        err = true;
-        DisplayError( this,
-                      wxT( "Error in HandleBlockPLace : m_mouseCaptureCallback = NULL" ) );
-    }
     GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP;
 
     switch( GetScreen()->m_BlockLocate.m_Command )
     {
-    case BLOCK_IDLE:
-        err = true;
-        break;
-
-    case BLOCK_DRAG:                /* Drag */
     case BLOCK_MOVE:                /* Move */
-    case BLOCK_PRESELECT_MOVE:      /* Move with preselection list*/
         if( DrawPanel->IsMouseCaptured() )
             DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false );
 
@@ -122,9 +102,9 @@ void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC )
         break;
 
     case BLOCK_PASTE:
-        break;
-
-    case BLOCK_ZOOM:        // Handle by HandleBlockEnd()
+    case BLOCK_DRAG:
+    case BLOCK_PRESELECT_MOVE:
+    case BLOCK_ZOOM:
     case BLOCK_ROTATE:
     case BLOCK_FLIP:
     case BLOCK_DELETE:
@@ -133,6 +113,8 @@ void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC )
     case BLOCK_SELECT_ITEMS_ONLY:
     case BLOCK_MIRROR_X:
     case BLOCK_MIRROR_Y:
+    case BLOCK_IDLE:
+        wxFAIL_MSG( wxT("HandleBlockPlace: Unexpected block command") );
         break;
     }
 
@@ -142,11 +124,7 @@ void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC )
     GetScreen()->SetModify();
     GetScreen()->ClearBlockCommand();
 
-    if( GetScreen()->m_BlockLocate.GetCount() )
-    {
-        DisplayError( this, wxT( "HandleBlockPLace error: some items left" ) );
-        GetScreen()->m_BlockLocate.ClearItemsList();
-    }
+    wxASSERT( GetScreen()->m_BlockLocate.GetCount() == 0 );
 
     DisplayToolMsg( wxEmptyString );
 }
@@ -171,15 +149,8 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC )
 
         switch( GetScreen()->m_BlockLocate.m_Command )
         {
-        case BLOCK_IDLE:
-            DisplayError( this, wxT( "Error in HandleBlockPLace" ) );
-            break;
-
-        case BLOCK_DRAG:            /* Drag (not used, for future
-                                     * enhancements) */
         case BLOCK_MOVE:            /* Move */
         case BLOCK_COPY:            /* Copy */
-        case BLOCK_PRESELECT_MOVE:  /* Move with preselection list */
             GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE;
             nextcmd = true;
             DrawPanel->m_mouseCaptureCallback( DrawPanel, DC, wxDefaultPosition, false );
@@ -193,20 +164,22 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC )
             Block_Delete( DC );
             break;
 
+        case BLOCK_ZOOM: /* Window Zoom */
+            zoom_command = true;
+            break;
+
+        case BLOCK_PRESELECT_MOVE:  /* Move with preselection list */
+        case BLOCK_DRAG:
+        case BLOCK_IDLE:
         case BLOCK_MIRROR_X:    /* Mirror, unused*/
         case BLOCK_ROTATE:      /* Unused */
         case BLOCK_FLIP:        /* Flip, unused */
         case BLOCK_SAVE:        /* Save (not used)*/
         case BLOCK_PASTE:
-            break;
-
-        case BLOCK_ZOOM: /* Window Zoom */
-            zoom_command = true;
-            break;
-
         case BLOCK_ABORT:
         case BLOCK_SELECT_ITEMS_ONLY:
         case BLOCK_MIRROR_Y:
+            wxFAIL_MSG( wxT("HandleBlockEnd: Unexpected block command") );
             break;
         }
 
diff --git a/gerbview/class_gerbview_layer_widget.cpp b/gerbview/class_gerbview_layer_widget.cpp
index eb1932b5cd..3841517c36 100644
--- a/gerbview/class_gerbview_layer_widget.cpp
+++ b/gerbview/class_gerbview_layer_widget.cpp
@@ -33,7 +33,6 @@
 #include "class_drawpanel.h"
 #include "pcbstruct.h"
 #include "gerbview.h"
-#include "wxGerberFrame.h"
 #include "layer_widget.h"
 #include "class_gerbview_layer_widget.h"
 
diff --git a/gerbview/dcode.cpp b/gerbview/dcode.cpp
index e3635c395a..da329df607 100644
--- a/gerbview/dcode.cpp
+++ b/gerbview/dcode.cpp
@@ -137,17 +137,17 @@ int D_CODE::GetShapeDim( GERBER_DRAW_ITEM* aParent )
 
 
 /*
- * Function Read_D_Code_File
+ * Function ReadDCodeDefinitionFile
  * Can be useful only with old RS274D Gerber file format.
  * Is not needed with RS274X files format.
  * These files need an auxiliary DCode file description. There is no defined file format for this.
  * This function read a file format I needed a long time ago.
  * reads in a dcode file assuming ALSPCB file format with ';' indicating comments.
  * Format is like CSV but with optional ';' delineated comments:
- * tool,     Horiz,       Vert,   drill, vitesse, acc. ,Type ; [DCODE (commentaire)]
+ * tool,     Horiz,       Vert,   drill, speed, accel. ,Type ; [DCODE (commentaire)]
  * ex:     1,         12,       12,     0,        0,     0,   3 ; D10
  */
-int GERBVIEW_FRAME::Read_D_Code_File( const wxString& D_Code_FullFileName )
+int GERBVIEW_FRAME::ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName )
 {
     int      current_Dcode, ii, dcode_scale;
     char*    ptcar;
diff --git a/gerbview/dialogs/dialog_print_using_printer.cpp b/gerbview/dialogs/dialog_print_using_printer.cpp
index dbc8cb5a79..e0085473e5 100644
--- a/gerbview/dialogs/dialog_print_using_printer.cpp
+++ b/gerbview/dialogs/dialog_print_using_printer.cpp
@@ -15,7 +15,6 @@
 #include "printout_controler.h"
 
 #include "gerbview.h"
-#include "wxGerberFrame.h"
 #include "pcbplot.h"
 #include "class_board_design_settings.h"
 
diff --git a/gerbview/edit.cpp b/gerbview/edit.cpp
index 3a16ae23ed..0cc0105af0 100644
--- a/gerbview/edit.cpp
+++ b/gerbview/edit.cpp
@@ -118,11 +118,11 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event )
     switch( id )
     {
     case ID_EXIT:
-        Close( TRUE );
+        Close( true );
         break;
 
     case ID_GERBVIEW_GLOBAL_DELETE:
-        Erase_Current_Layer( TRUE );
+        Erase_Current_Layer( true );
         ClearMsgPanel();
         break;
 
@@ -171,6 +171,10 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event )
                 wxFileName fn( gerber_layer->m_FileName );
                 ExecuteFile( this, editorname, QuoteFullPath( fn ) );
             }
+            else
+            {
+                wxMessageBox(_("No editor defined. Please select one") );
+            }
         }
         break;
 
diff --git a/gerbview/files.cpp b/gerbview/files.cpp
index 712ddfa306..01db40d633 100644
--- a/gerbview/files.cpp
+++ b/gerbview/files.cpp
@@ -10,9 +10,6 @@
 
 #include "gerbview.h"
 
-static void LoadDCodeFile( GERBVIEW_FRAME* frame,
-                           const wxString&     FullFileName );
-
 
 /* Load a Gerber file selected from history list on current layer
  * Previous data is deleted
@@ -79,11 +76,12 @@ clear an existing layer to load any new layers." ), NB_LAYERS );
         break;
 
     case ID_GERBVIEW_LOAD_DCODE_FILE:
-        LoadDCodeFile( this, wxEmptyString );
+        LoadDCodeFile( wxEmptyString );
+        DrawPanel->Refresh();
         break;
 
     default:
-        DisplayError( this, wxT( "File_io Internal Error" ) );
+        wxFAIL_MSG( wxT( "File_io: unexpected command id" ) );
         break;
     }
 }
@@ -199,33 +197,33 @@ bool GERBVIEW_FRAME::LoadGerberFiles( const wxString& aFullFileName )
 
 /*
  * Read a DCode file (not used with RX274X files , just with RS274D old files).
- * Note: there is no standard for DCode file.
+ * Note: there is no standard for DCode files.
  * Just read a file format created by early versions of Pcbnew.
  * Returns:
- *   0 if file not read (cancellation of order ...)
- *   1 if OK
+ *   false if file not read (cancellation of order ...)
+ *   true if OK
  */
-static void LoadDCodeFile( GERBVIEW_FRAME* frame, const wxString& FullFileName )
+bool GERBVIEW_FRAME::LoadDCodeFile( const wxString& aFullFileName )
 {
     wxString   wildcard;
-    wxFileName fn = FullFileName;
+    wxFileName fn = aFullFileName;
 
     if( !fn.IsOk() )
     {
         wildcard = _( "Gerber DCODE files" );
-        wildcard += AllFilesWildcard;
-        fn = frame->GetScreen()->GetFileName();
-        wxFileDialog dlg( (wxWindow*) frame, _( "Load GERBER DCODE File" ),
+        wildcard += wxT(" ") + AllFilesWildcard;
+        fn = GetScreen()->GetFileName();
+        wxFileDialog dlg( this, _( "Load GERBER DCODE File" ),
                           fn.GetPath(), fn.GetFullName(), wildcard,
                           wxFD_OPEN | wxFD_FILE_MUST_EXIST );
 
         if( dlg.ShowModal() == wxID_CANCEL )
-            return;
+            return false;
 
         fn = dlg.GetPath();
     }
 
-    frame->Read_D_Code_File( fn.GetFullPath() );
-    frame->CopyDCodesSizeToItems();
-    frame->Refresh();
+    ReadDCodeDefinitionFile( fn.GetFullPath() );
+    CopyDCodesSizeToItems();
+    return true;
 }
diff --git a/gerbview/gerbview.cpp b/gerbview/gerbview.cpp
index 938e0ef529..99f2107cd1 100644
--- a/gerbview/gerbview.cpp
+++ b/gerbview/gerbview.cpp
@@ -11,7 +11,6 @@
 
 #include "gerbview.h"
 #include "gerbview_id.h"
-#include "wxGerberFrame.h"
 #include "pcbplot.h"
 #include "bitmaps.h"
 #include "zones.h"
diff --git a/gerbview/gerbview.h b/gerbview/gerbview.h
index 3e8b2166cf..9c56726a45 100644
--- a/gerbview/gerbview.h
+++ b/gerbview/gerbview.h
@@ -108,6 +108,6 @@ bool GetEndOfBlock( char buff[GERBER_BUFZ], char*& text, FILE* gerber_file );
 extern GERBER_IMAGE* g_GERBER_List[32];
 
 #include "pcbcommon.h"
-#include "wxGerberFrame.h"
+#include "gerbview_frame.h"
 
 #endif  // ifndef GERBVIEW_H
diff --git a/gerbview/gerberframe.cpp b/gerbview/gerbview_frame.cpp
similarity index 99%
rename from gerbview/gerberframe.cpp
rename to gerbview/gerbview_frame.cpp
index 35438c736b..696d9de91c 100644
--- a/gerbview/gerberframe.cpp
+++ b/gerbview/gerbview_frame.cpp
@@ -64,6 +64,8 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, PCB_BASE_FRAME )
     EVT_MENU( ID_GERBVIEW_SHOW_LIST_DCODES, GERBVIEW_FRAME::Process_Special_Functions )
     EVT_MENU( ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS, GERBVIEW_FRAME::Process_Special_Functions )
     EVT_MENU( ID_GERBVIEW_SHOW_SOURCE, GERBVIEW_FRAME::Process_Special_Functions )
+    EVT_MENU( ID_MENU_GERBVIEW_SELECT_PREFERED_EDITOR,
+              EDA_BASE_FRAME::OnSelectPreferredEditor )
 
     // menu Miscellaneous
     EVT_MENU( ID_GERBVIEW_GLOBAL_DELETE, GERBVIEW_FRAME::Process_Special_Functions )
diff --git a/gerbview/wxGerberFrame.h b/gerbview/gerbview_frame.h
similarity index 96%
rename from gerbview/wxGerberFrame.h
rename to gerbview/gerbview_frame.h
index 80eba0cbd5..6ac2b7bb4c 100644
--- a/gerbview/wxGerberFrame.h
+++ b/gerbview/gerbview_frame.h
@@ -406,7 +406,18 @@ public: GERBVIEW_FRAME( wxWindow* father, const wxString& title,
     void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
 
     /**
-     * Function Read_D_Code_File
+     * Read a DCode file (not used with RX274X files , just with RS274D old files).
+     * Note: there is no standard for DCode file.
+     * Just read a file format created by early versions of Pcbnew.
+     * @return false if file not read (cancellation)
+     *          true if OK
+     * @ aparm aFullFileName = name of file to load.
+     *  if empty, or if the file does not exist, a file dialog is opened
+     */
+    bool LoadDCodeFile( const wxString& aFullFileName );
+
+    /**
+     * Function ReadDCodeDefinitionFile
      * reads in a dcode file assuming ALSPCB file format with ';' indicating
      * comments.
      * <p>
@@ -418,7 +429,7 @@ public: GERBVIEW_FRAME( wxWindow* father, const wxString& title,
      * Ver,  Hor, Type, Tool [,Drill]<br>
      * example: 0.012, 0.012,  L   , D10<br>
      *
-     * Categorize all found dcodes into a table of D_CODE instantiations.
+     * Load all found dcodes into a table of D_CODE instantiations.
      * @param D_Code_FullFileName The name of the file to read from.
      * @return int - <br>
      *                 -1 = file not found<br>
@@ -428,7 +439,7 @@ public: GERBVIEW_FRAME( wxWindow* father, const wxString& title,
      *                      g_GERBER_List[]<br>
      *                  1 = read OK<br>
      */
-    int Read_D_Code_File( const wxString& D_Code_FullFileName );
+    int ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName );
     void CopyDCodesSizeToItems();
     void Liste_D_Codes();
 
diff --git a/gerbview/gerbview_id.h b/gerbview/gerbview_id.h
index 5d9befa09c..0fc7fe2eba 100644
--- a/gerbview/gerbview_id.h
+++ b/gerbview/gerbview_id.h
@@ -16,6 +16,7 @@ enum gerbview_ids
     ID_MAIN_MENUBAR = ID_END_LIST,
 
     ID_MENU_GERBVIEW_SHOW_HIDE_LAYERS_MANAGER_DIALOG,
+    ID_MENU_GERBVIEW_SELECT_PREFERED_EDITOR,
 
     ID_TOOLBARH_GERBVIEW_SELECT_LAYER,
     ID_GERBVIEW_GLOBAL_DELETE,
diff --git a/gerbview/menubar.cpp b/gerbview/menubar.cpp
index 76a99dea4b..4705300f0f 100644
--- a/gerbview/menubar.cpp
+++ b/gerbview/menubar.cpp
@@ -6,7 +6,7 @@
 
 #include "appl_wxstruct.h"
 #include "common.h"
-#include "macros.h"
+//#include "macros.h"
 #include "gerbview.h"
 #include "bitmaps.h"
 #include "gerbview_id.h"
@@ -91,6 +91,13 @@ void GERBVIEW_FRAME::ReCreateMenuBar( void )
                             _( "&Clear Layer" ),
                             _( "Clear current layer" ), general_deletions_xpm );
 
+    miscellaneous_menu->AppendSeparator();
+    ADD_MENUITEM_WITH_HELP( miscellaneous_menu, ID_MENU_GERBVIEW_SELECT_PREFERED_EDITOR,
+                            _( "&Text Editor" ),
+                            _( "Select your preferred text editor" ),
+                            editor_xpm );
+
+
     // Menu Help:
     wxMenu* helpMenu = new wxMenu;
     AddHelpVersionInfoMenuEntry( helpMenu );
diff --git a/gerbview/options.cpp b/gerbview/options.cpp
index 48797b3d1a..dfe556947d 100644
--- a/gerbview/options.cpp
+++ b/gerbview/options.cpp
@@ -88,3 +88,4 @@ void GERBVIEW_FRAME::OnSelectOptionToolbar( wxCommandEvent& event )
         break;
     }
 }
+
diff --git a/gerbview/readgerb.cpp b/gerbview/readgerb.cpp
index 0e148bbb82..2d65b78502 100644
--- a/gerbview/readgerb.cpp
+++ b/gerbview/readgerb.cpp
@@ -165,31 +165,7 @@ bool GERBVIEW_FRAME::Read_GERBER_File( const wxString& GERBER_FullFileName,
      */
     if( !gerber->m_Has_DCode )
     {
-        wxFileName fn;
-
-        if( D_Code_FullFileName.IsEmpty() )
-        {
-            wxString wildcard;
-
-            fn = GERBER_FullFileName;
-            fn.SetExt( wxEmptyString );
-            wildcard = _( "Gerber DCODE files" );
-            wildcard += AllFilesWildcard;
-
-            wxFileDialog dlg( this, _( "Load GERBER DCODE File" ),
-                              wxEmptyString, fn.GetFullName(), wildcard,
-                              wxFD_OPEN | wxFD_FILE_MUST_EXIST );
-        }
-        else
-            fn = D_Code_FullFileName;
-
-        if( fn.IsOk() )
-        {
-            Read_D_Code_File( fn.GetFullPath() );
-            CopyDCodesSizeToItems();
-        }
-        else
-            return false;
+        return LoadDCodeFile( D_Code_FullFileName );
     }
 
     return true;
diff --git a/include/wxstruct.h b/include/wxstruct.h
index a01089205c..f2a358aab1 100644
--- a/include/wxstruct.h
+++ b/include/wxstruct.h
@@ -127,6 +127,14 @@ public:
     virtual void LoadSettings();
     virtual void SaveSettings();
 
+    /**
+     * Function OnSelectPreferredEditor
+     * Open a dialog to select the editor that will used in Kicad
+     * to edit or display files (reports ... )
+     * The full filename editor is saved in configuration (global params)
+     */
+    virtual void OnSelectPreferredEditor( wxCommandEvent& event );
+
     // Read/Save and Import/export hotkeys config
 
     /**
diff --git a/kicad/kicad.h b/kicad/kicad.h
index f88777326d..2c811589ce 100644
--- a/kicad/kicad.h
+++ b/kicad/kicad.h
@@ -109,7 +109,6 @@ public:
     void OnRefresh( wxCommandEvent& event );
     void OnSelectDefaultPdfBrowser( wxCommandEvent& event );
     void OnSelectPreferredPdfBrowser( wxCommandEvent& event );
-    void OnSelectPreferredEditor( wxCommandEvent& event );
 
     void OnUpdateDefaultPdfBrowser( wxUpdateUIEvent& event );
     void OnUpdatePreferredPdfBrowser( wxUpdateUIEvent& event );
diff --git a/kicad/menubar.cpp b/kicad/menubar.cpp
index b128252585..9bf64bfe48 100644
--- a/kicad/menubar.cpp
+++ b/kicad/menubar.cpp
@@ -11,56 +11,56 @@
 
 /* Menubar and toolbar event table */
 BEGIN_EVENT_TABLE( WinEDA_MainFrame, EDA_BASE_FRAME )
-    /* Window events */
-    EVT_SIZE( WinEDA_MainFrame::OnSize )
-    EVT_CLOSE( WinEDA_MainFrame::OnCloseWindow )
+/* Window events */
+EVT_SIZE( WinEDA_MainFrame::OnSize )
+EVT_CLOSE( WinEDA_MainFrame::OnCloseWindow )
 
-    /* Sash drag events */
-    EVT_SASH_DRAGGED( ID_LEFT_FRAME, WinEDA_MainFrame::OnSashDrag )
+/* Sash drag events */
+EVT_SASH_DRAGGED( ID_LEFT_FRAME, WinEDA_MainFrame::OnSashDrag )
 
-    /* Toolbar events */
-    EVT_TOOL( ID_NEW_PROJECT, WinEDA_MainFrame::OnLoadProject )
-    EVT_TOOL( ID_LOAD_PROJECT, WinEDA_MainFrame::OnLoadProject )
-    EVT_TOOL( ID_SAVE_PROJECT, WinEDA_MainFrame::OnSaveProject )
-    EVT_TOOL( ID_SAVE_AND_ZIP_FILES, WinEDA_MainFrame::OnArchiveFiles )
+/* Toolbar events */
+EVT_TOOL( ID_NEW_PROJECT, WinEDA_MainFrame::OnLoadProject )
+EVT_TOOL( ID_LOAD_PROJECT, WinEDA_MainFrame::OnLoadProject )
+EVT_TOOL( ID_SAVE_PROJECT, WinEDA_MainFrame::OnSaveProject )
+EVT_TOOL( ID_SAVE_AND_ZIP_FILES, WinEDA_MainFrame::OnArchiveFiles )
 
-    /* Menu events */
-    EVT_MENU( ID_SAVE_PROJECT, WinEDA_MainFrame::OnSaveProject )
-    EVT_MENU( wxID_EXIT, WinEDA_MainFrame::OnExit )
-    EVT_MENU( ID_TO_EDITOR, WinEDA_MainFrame::OnOpenTextEditor )
-    EVT_MENU( ID_BROWSE_AN_SELECT_FILE,
-              WinEDA_MainFrame::OnOpenFileInTextEditor )
-    EVT_MENU( ID_SELECT_PREFERED_EDITOR,
-              WinEDA_MainFrame::OnSelectPreferredEditor )
-    EVT_MENU( ID_SELECT_DEFAULT_PDF_BROWSER,
-              WinEDA_MainFrame::OnSelectDefaultPdfBrowser )
-    EVT_MENU( ID_SELECT_PREFERED_PDF_BROWSER,
-              WinEDA_MainFrame::OnSelectPreferredPdfBrowser )
-    EVT_MENU( ID_SELECT_PREFERED_PDF_BROWSER_NAME,
-              WinEDA_MainFrame::OnSelectPreferredPdfBrowser )
-    EVT_MENU( ID_SAVE_AND_ZIP_FILES, WinEDA_MainFrame::OnArchiveFiles )
-    EVT_MENU( ID_READ_ZIP_ARCHIVE, WinEDA_MainFrame::OnUnarchiveFiles )
-    EVT_MENU( ID_PROJECT_TREE_REFRESH, WinEDA_MainFrame::OnRefresh )
-    EVT_MENU( ID_GENERAL_HELP, WinEDA_MainFrame::GetKicadHelp )
-    EVT_MENU( ID_KICAD_ABOUT, WinEDA_MainFrame::GetKicadAbout )
+/* Menu events */
+EVT_MENU( ID_SAVE_PROJECT, WinEDA_MainFrame::OnSaveProject )
+EVT_MENU( wxID_EXIT, WinEDA_MainFrame::OnExit )
+EVT_MENU( ID_TO_EDITOR, WinEDA_MainFrame::OnOpenTextEditor )
+EVT_MENU( ID_BROWSE_AN_SELECT_FILE,
+          WinEDA_MainFrame::OnOpenFileInTextEditor )
+EVT_MENU( ID_SELECT_PREFERED_EDITOR,
+          EDA_BASE_FRAME::OnSelectPreferredEditor )
+EVT_MENU( ID_SELECT_DEFAULT_PDF_BROWSER,
+          WinEDA_MainFrame::OnSelectDefaultPdfBrowser )
+EVT_MENU( ID_SELECT_PREFERED_PDF_BROWSER,
+          WinEDA_MainFrame::OnSelectPreferredPdfBrowser )
+EVT_MENU( ID_SELECT_PREFERED_PDF_BROWSER_NAME,
+          WinEDA_MainFrame::OnSelectPreferredPdfBrowser )
+EVT_MENU( ID_SAVE_AND_ZIP_FILES, WinEDA_MainFrame::OnArchiveFiles )
+EVT_MENU( ID_READ_ZIP_ARCHIVE, WinEDA_MainFrame::OnUnarchiveFiles )
+EVT_MENU( ID_PROJECT_TREE_REFRESH, WinEDA_MainFrame::OnRefresh )
+EVT_MENU( ID_GENERAL_HELP, WinEDA_MainFrame::GetKicadHelp )
+EVT_MENU( ID_KICAD_ABOUT, WinEDA_MainFrame::GetKicadAbout )
 
-    /* Range menu events */
-    EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END,
-                    WinEDA_MainFrame::SetLanguage )
+/* Range menu events */
+EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END,
+                WinEDA_MainFrame::SetLanguage )
 
-    EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, WinEDA_MainFrame::OnFileHistory )
+EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, WinEDA_MainFrame::OnFileHistory )
 
-    /* Button events */
-    EVT_BUTTON( ID_TO_PCB, WinEDA_MainFrame::OnRunPcbNew )
-    EVT_BUTTON( ID_TO_CVPCB, WinEDA_MainFrame::OnRunCvpcb )
-    EVT_BUTTON( ID_TO_EESCHEMA, WinEDA_MainFrame::OnRunEeschema )
-    EVT_BUTTON( ID_TO_GERBVIEW, WinEDA_MainFrame::OnRunGerbview )
-    EVT_BUTTON( ID_TO_BITMAP_CONVERTER, WinEDA_MainFrame::OnRunBitmapConverter )
+/* Button events */
+EVT_BUTTON( ID_TO_PCB, WinEDA_MainFrame::OnRunPcbNew )
+EVT_BUTTON( ID_TO_CVPCB, WinEDA_MainFrame::OnRunCvpcb )
+EVT_BUTTON( ID_TO_EESCHEMA, WinEDA_MainFrame::OnRunEeschema )
+EVT_BUTTON( ID_TO_GERBVIEW, WinEDA_MainFrame::OnRunGerbview )
+EVT_BUTTON( ID_TO_BITMAP_CONVERTER, WinEDA_MainFrame::OnRunBitmapConverter )
 
-    EVT_UPDATE_UI( ID_SELECT_DEFAULT_PDF_BROWSER,
-                   WinEDA_MainFrame::OnUpdateDefaultPdfBrowser )
-    EVT_UPDATE_UI( ID_SELECT_PREFERED_PDF_BROWSER,
-                   WinEDA_MainFrame::OnUpdatePreferredPdfBrowser )
+EVT_UPDATE_UI( ID_SELECT_DEFAULT_PDF_BROWSER,
+               WinEDA_MainFrame::OnUpdateDefaultPdfBrowser )
+EVT_UPDATE_UI( ID_SELECT_PREFERED_PDF_BROWSER,
+               WinEDA_MainFrame::OnUpdatePreferredPdfBrowser )
 
 END_EVENT_TABLE()
 
@@ -70,17 +70,17 @@ END_EVENT_TABLE()
  */
 void WinEDA_MainFrame::ReCreateMenuBar()
 {
-    wxMenuItem *item;
-    wxMenuBar  *menuBar = GetMenuBar();
+    wxMenuItem* item;
+    wxMenuBar*  menuBar = GetMenuBar();
 
-    if( ! menuBar )
+    if( !menuBar )
         menuBar = new wxMenuBar();
 
     // Delete all existing menus so they can be rebuilt.
     // This allows language changes of the menu text on the fly.
     menuBar->Freeze();
     while( menuBar->GetMenuCount() )
-        delete menuBar->Remove(0);
+        delete menuBar->Remove( 0 );
 
     // Recreate all menus:
 
@@ -88,113 +88,75 @@ void WinEDA_MainFrame::ReCreateMenuBar()
     wxMenu* filesMenu = new wxMenu;
 
     // Open
-    item = new wxMenuItem( filesMenu, ID_LOAD_PROJECT, _( "&Open\tCtrl+O" ),
-                           _( "Open an existing project" ) );
-
-#if !defined( __WXMAC__ )
-    item->SetBitmap( open_project_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    filesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( filesMenu, ID_LOAD_PROJECT, _( "&Open\tCtrl+O" ),
+                            _( "Open an existing project" ),
+                            open_project_xpm );
 
     // Open Recent submenu
     wxMenu* openRecentMenu = new wxMenu();
     wxGetApp().m_fileHistory.AddFilesToMenu( openRecentMenu );
     ADD_MENUITEM_WITH_HELP_AND_SUBMENU( filesMenu, openRecentMenu,
-                                        -1, _( "Open &Recent" ),
-                                        _("Open a recent opened schematic project" ),
+                                        wxID_ANY, _( "Open &Recent" ),
+                                        _( "Open a recent opened schematic project" ),
                                         open_project_xpm );
 
     // New
-    item = new wxMenuItem( filesMenu, ID_NEW_PROJECT, _( "&New\tCtrl+N" ),
-                           _( "Start a new project" ) );
-
-#if !defined( __WXMAC__ )
-    item->SetBitmap( new_project_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    filesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( filesMenu, ID_NEW_PROJECT,
+                            _( "&New\tCtrl+N" ),
+                            _( "Start a new project" ),
+                            new_project_xpm );
 
     /* Save */
-    item = new wxMenuItem( filesMenu, ID_SAVE_PROJECT, _( "&Save\tCtrl+S" ),
-                           _( "Save current project" ) );
-
-#if !defined( __WXMAC__ )
-    item->SetBitmap( save_project_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    filesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( filesMenu, ID_SAVE_PROJECT, _( "&Save\tCtrl+S" ),
+                            _( "Save current project" ),
+                            save_project_xpm );
 
     // Archive
     filesMenu->AppendSeparator();
-    item = new wxMenuItem( filesMenu, ID_SAVE_AND_ZIP_FILES, _( "&Archive" ),
-                           _( "Archive project files in zip archive" ) );
-
-#if !defined( __WXMAC__ )
-    item->SetBitmap( zip_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    filesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( filesMenu, ID_SAVE_AND_ZIP_FILES, _( "&Archive" ),
+                            _( "Archive project files in zip archive" ),
+                            zip_xpm );
 
     // Unarchive
-    item = new wxMenuItem( filesMenu, ID_READ_ZIP_ARCHIVE, _( "&Unarchive" ),
-                           _( "Unarchive project files from zip file" ) );
-
-#if !defined( __WXMAC__ )
-    item->SetBitmap( unzip_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    filesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( filesMenu, ID_READ_ZIP_ARCHIVE, _( "&Unarchive" ),
+                            _( "Unarchive project files from zip file" ),
+                            unzip_xpm );
 
     /* Quit on all platforms except WXMAC */
 #if !defined( __WXMAC__ )
 
     filesMenu->AppendSeparator();
-    item = new wxMenuItem( filesMenu, wxID_EXIT, _( "&Quit" ),
-                          _( "Quit KiCad" ) );
-    item->SetBitmap( exit_xpm );
-    filesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( filesMenu, wxID_EXIT, _( "&Quit" ),
+                            _( "Quit KiCad" ),
+                            exit_xpm );
 
 #endif /* !defined( __WXMAC__ ) */
 
 
-
     // Browse menu
     wxMenu* browseMenu = new wxMenu();
 
     // Text editor
-    item = new wxMenuItem( browseMenu, ID_TO_EDITOR, _( "Text E&ditor" ),
-                           _( "Open preferred text editor" ) );
-#if !defined( __WXMAC__ )
-    item->SetBitmap( editor_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    browseMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( browseMenu, ID_TO_EDITOR,
+                            _( "Text E&ditor" ),
+                            _( "Launch preferred text editor" ),
+                            editor_xpm );
 
     /* Browse files */
-    item = new wxMenuItem( browseMenu, ID_BROWSE_AN_SELECT_FILE,
-                           _( "&View File" ),
-                           _( "View, read or edit file with a text editor" ) );
-#if !defined( __WXMAC__ )
-    item->SetBitmap( browse_files_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    browseMenu->Append( item );
-
+    ADD_MENUITEM_WITH_HELP( browseMenu, ID_BROWSE_AN_SELECT_FILE,
+                            _( "&View File" ),
+                            _( "View, read or edit file with a text editor" ),
+                            browse_files_xpm );
 
 
     // Preferences menu
     wxMenu* PreferencesMenu = new wxMenu;
 
     // Text editor
-    item = new wxMenuItem( PreferencesMenu, ID_SELECT_PREFERED_EDITOR,
-                           _( "&Text Editor" ),
-                           _( "Select your preferred text editor" ) );
-#if !defined( __WXMAC__ )
-    item->SetBitmap( editor_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    PreferencesMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( PreferencesMenu, ID_SELECT_PREFERED_EDITOR,
+                            _( "&Text Editor" ),
+                            _( "Select your preferred text editor" ),
+                            editor_xpm );
 
     // PDF Viewer submenu:System browser or user defined checkbox
     wxMenu* SubMenuPdfBrowserChoice = new wxMenu;
@@ -230,15 +192,11 @@ void WinEDA_MainFrame::ReCreateMenuBar()
                                     !wxGetApp().m_PdfBrowserIsDefault );
 
     // Append PDF Viewer submenu to preferences
-    item = new wxMenuItem( SubMenuPdfBrowserChoice,
-                           ID_SELECT_PREFERED_PDF_BROWSER_NAME,
-                           _( "PDF Viewer" ),
-                           _( "Select your favourite PDF viewer used to browse datasheets" ) );
-#if !defined( __WXMAC__ )
-    item->SetBitmap( datasheet_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    SubMenuPdfBrowserChoice->Append( item );
+    ADD_MENUITEM_WITH_HELP( SubMenuPdfBrowserChoice,
+                            ID_SELECT_PREFERED_PDF_BROWSER_NAME,
+                            _( "PDF Viewer" ),
+                            _( "Select your favourite PDF viewer used to browse datasheets" ),
+                            datasheet_xpm );
 
     ADD_MENUITEM_WITH_HELP_AND_SUBMENU( PreferencesMenu,
                                         SubMenuPdfBrowserChoice,
@@ -256,21 +214,15 @@ void WinEDA_MainFrame::ReCreateMenuBar()
     AddHelpVersionInfoMenuEntry( helpMenu );
 
     /* Contents */
-    item = new wxMenuItem( helpMenu, ID_GENERAL_HELP, _( "&Contents" ),
-                           _( "Open the kicad manual" ) );
-
-#if !defined( __WXMAC__ )
-    item->SetBitmap( online_help_xpm );
-#endif /* !defined( __WXMAC__ ) */
-
-    helpMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( helpMenu, ID_GENERAL_HELP, _( "&Contents" ),
+                            _( "Open the kicad manual" ),
+                            online_help_xpm );
 
     // About
     helpMenu->AppendSeparator();
-    item = new wxMenuItem( helpMenu, ID_KICAD_ABOUT, _( "&About" ),
-                           _( "About kicad project manager" ) );
-    item->SetBitmap( info_xpm );
-    helpMenu->Append( item );
+    ADD_MENUITEM_WITH_HELP( helpMenu, ID_KICAD_ABOUT, _( "&About" ),
+                            _( "About kicad project manager" ),
+                            info_xpm );
 
     // Create the menubar and append all submenus
     menuBar->Append( filesMenu, _( "&File" ) );
@@ -302,34 +254,34 @@ void WinEDA_MainFrame::RecreateBaseHToolbar()
 
     /* New */
     m_HToolBar->AddTool( ID_NEW_PROJECT, wxEmptyString,
-                         wxBitmap( new_project_xpm ),
-                         _( "Start a new project" ) );
+                        wxBitmap( new_project_xpm ),
+                        _( "Start a new project" ) );
 
     /* Load */
     m_HToolBar->AddTool( ID_LOAD_PROJECT, wxEmptyString,
-                         wxBitmap( open_project_xpm ),
-                         _( "Load existing project" ) );
+                        wxBitmap( open_project_xpm ),
+                        _( "Load existing project" ) );
 
     /* Save */
     m_HToolBar->AddTool( ID_SAVE_PROJECT, wxEmptyString,
-                         wxBitmap( save_project_xpm ),
-                         _( "Save current project" ) );
+                        wxBitmap( save_project_xpm ),
+                        _( "Save current project" ) );
 
     /* Separator */
     m_HToolBar->AddSeparator();
 
     /* Archive */
     m_HToolBar->AddTool( ID_SAVE_AND_ZIP_FILES, wxEmptyString,
-                         wxBitmap( zip_xpm ),
-                         _( "Archive all project files" ) );
+                        wxBitmap( zip_xpm ),
+                        _( "Archive all project files" ) );
 
     /* Separator */
     m_HToolBar->AddSeparator();
 
     /* Refresh project tree */
     m_HToolBar->AddTool( ID_PROJECT_TREE_REFRESH, wxEmptyString,
-                         wxBitmap( reload_xpm ),
-                         _( "Refresh project tree" ) );
+                        wxBitmap( reload_xpm ),
+                        _( "Refresh project tree" ) );
 
     /* Create m_HToolBar */
     m_HToolBar->Realize();
diff --git a/kicad/preferences.cpp b/kicad/preferences.cpp
index 68f1429dcb..a7600dc5fe 100644
--- a/kicad/preferences.cpp
+++ b/kicad/preferences.cpp
@@ -69,33 +69,6 @@ void WinEDA_MainFrame::OnSelectPreferredPdfBrowser( wxCommandEvent& event )
     wxGetApp().WritePdfBrowserInfos();
 }
 
-
-void WinEDA_MainFrame::OnSelectPreferredEditor( wxCommandEvent& event )
-{
-    wxFileName fn = wxGetApp().m_EditorName;
-    wxString wildcard( wxT( "*" ) );
-
-#ifdef __WINDOWS__
-    wildcard += wxT( ".exe" );
-#endif
-
-    wildcard = _( "Executable file (" ) + wildcard + wxT( ")|" ) + wildcard;
-
-    wxFileDialog dlg( this, _( "Select Prefered Editor" ), fn.GetPath(),
-                      fn.GetFullName(), wildcard,
-                      wxFD_OPEN | wxFD_FILE_MUST_EXIST );
-
-    if( dlg.ShowModal() == wxID_CANCEL )
-        return;
-
-    wxASSERT( wxGetApp().m_EDA_CommonConfig );
-
-    wxConfig* cfg = wxGetApp().m_EDA_CommonConfig;
-    wxGetApp().m_EditorName = dlg.GetPath();
-    cfg->Write( wxT( "Editor" ), wxGetApp().m_EditorName );
-}
-
-
 void WinEDA_MainFrame::SetLanguage( wxCommandEvent& event )
 {
     EDA_BASE_FRAME::SetLanguage( event );
diff --git a/packaging/windows/nsis/install.nsi b/packaging/windows/nsis/install.nsi
index a0c0496375..d3eb5a9eae 100644
--- a/packaging/windows/nsis/install.nsi
+++ b/packaging/windows/nsis/install.nsi
@@ -17,7 +17,7 @@
 
 ; General Product Description Definitions
 !define PRODUCT_NAME "KiCad"
-!define PRODUCT_VERSION "2011.03.11"
+!define PRODUCT_VERSION "2011.03.12"
 !define PRODUCT_WEB_SITE "http://iut-tice.ujf-grenoble.fr/kicad/"
 !define SOURCEFORGE_WEB_SITE "http://kicad.sourceforge.net/"
 !define COMPANY_NAME ""
diff --git a/version.txt b/version.txt
index bfd6f8f64c..b706302c47 100644
--- a/version.txt
+++ b/version.txt
@@ -1,4 +1,4 @@
 release version:
-2011 mar 11
+2011 mar 12
 files (.zip,.tgz):
-kicad-2011-03-11
+kicad-2011-03-12