diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index f93a5434fc..83ae6f96df 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -4,6 +4,16 @@ KiCad ChangeLog 2010
 Please add newer entries at the top, list the date and your name with
 email address.
 
+2011-Feb-05, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
+================================================================================
+CvPcb:
+    Code cleanup. Rename WinEDA_CvpcbFrame to CVPCB_MAINFRAME,
+        according to coding style policy.
+    Change in CvPcb:
+        CvPcb does not use now .dcm files, only .mod files,
+        to read modules keywords and doc
+
+
 2011-Feb-2 UPDATE Dick Hollenbeck <dick@softplc.com>
 ================================================================================
 ++common:
diff --git a/bitmaps/CMakeLists.txt b/bitmaps/CMakeLists.txt
index 5a138f72c3..e567765090 100644
--- a/bitmaps/CMakeLists.txt
+++ b/bitmaps/CMakeLists.txt
@@ -187,6 +187,7 @@ set(BITMAP_SRCS
     Lang_Es.xpm
     Lang_Fr.xpm
     Lang_Fi.xpm
+    Lang_Gr.xpm
     Lang_Hu.xpm
     Lang_It.xpm
     Lang_Jp.xpm
diff --git a/bitmaps/Lang_Gr.xpm b/bitmaps/Lang_Gr.xpm
new file mode 100644
index 0000000000..812eca21b6
--- /dev/null
+++ b/bitmaps/Lang_Gr.xpm
@@ -0,0 +1,38 @@
+/* XPM */
+const char *lang_gr_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 16 1",
+"= c none",
+"& c #D6D8F8",
+"O c #3939DC",
+"+ c #0E12F2",
+"# c #A8A6F7",
+"o c #2826E4",
+": c #B4B6FC",
+"* c #8482F4",
+"@ c #4745F8",
+"- c #1C1EFC",
+"; c #1D22FB",
+"$ c #9C9AF4",
+". c #CAC8FA",
+"  c #0402FC",
+"% c #5456F4",
+"X c #7A79F9",
+/* pixels */
+"================",
+"  .XoOOOOOoo++++",
+"  .X @#########$",
+"%%&#%*##########",
+"&&=&&*          ",
+"  .X %.&&&&&&&&&",
+"  .X -@@@@@@@@@@",
+"@@&$@@@@@@@@@@@@",
+"                ",
+";--;-----------;",
+"*XXXXXXXXXXXXXXX",
+"&&&&&&&&&&&&&&&&",
+"                ",
+"::::::::::::::::",
+"================",
+"================"
+};
diff --git a/common/edaappl.cpp b/common/edaappl.cpp
index d898d0aedd..6d019768de 100644
--- a/common/edaappl.cpp
+++ b/common/edaappl.cpp
@@ -148,6 +148,14 @@ static struct LANGUAGE_DESCR s_Language_List[] =
         _( "German" )
     },
 
+    /* Greek language */
+    {
+        wxLANGUAGE_GREEK,
+        ID_LANGUAGE_GREEK,
+        lang_gr_xpm,
+        _( "Greek" )
+    },
+
     /* Slovenian language */
     {
         wxLANGUAGE_SLOVENIAN,
diff --git a/cvpcb/autosel.cpp b/cvpcb/autosel.cpp
index bd300317af..4584898f12 100644
--- a/cvpcb/autosel.cpp
+++ b/cvpcb/autosel.cpp
@@ -13,6 +13,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 
 
@@ -68,7 +69,7 @@ char * ReadQuotedText(wxString & aTarget, char * aText)
  * format of a line:
  * 'cmp_ref' 'footprint_name'
  */
-void WinEDA_CvpcbFrame::AssocieModule( wxCommandEvent& event )
+void CVPCB_MAINFRAME::AssocieModule( wxCommandEvent& event )
 {
     FOOTPRINT_ALIAS_LIST aliases;
     FOOTPRINT_ALIAS*     alias;
diff --git a/cvpcb/cfg.cpp b/cvpcb/cfg.cpp
index 8d310a5a17..81c115475d 100644
--- a/cvpcb/cfg.cpp
+++ b/cvpcb/cfg.cpp
@@ -9,7 +9,7 @@
 #include "param_config.h"
 #include "cvpcb.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 
 
 #define GROUP wxT("/cvpcb")
@@ -26,7 +26,7 @@
  * to define local variables.  The old method of statically building the array
  * at compile time requiring global variable definitions.
  */
-PARAM_CFG_ARRAY& WinEDA_CvpcbFrame::GetProjectFileParameters( void )
+PARAM_CFG_ARRAY& CVPCB_MAINFRAME::GetProjectFileParameters( void )
 {
     if( !m_projectFileParams.empty() )
         return m_projectFileParams;
@@ -59,7 +59,7 @@ PARAM_CFG_ARRAY& WinEDA_CvpcbFrame::GetProjectFileParameters( void )
  * The path of the executable must be in cvpcb.exe.
  *
  */
-void WinEDA_CvpcbFrame::LoadProjectFile( const wxString& FileName )
+void CVPCB_MAINFRAME::LoadProjectFile( const wxString& FileName )
 {
     wxFileName fn = FileName;
 
@@ -82,13 +82,13 @@ void WinEDA_CvpcbFrame::LoadProjectFile( const wxString& FileName )
 }
 
 
-void WinEDA_CvpcbFrame::Update_Config( wxCommandEvent& event )
+void CVPCB_MAINFRAME::Update_Config( wxCommandEvent& event )
 {
     SaveProjectFile( m_NetlistFileName.GetFullPath() );
 }
 
 
-void WinEDA_CvpcbFrame::SaveProjectFile( const wxString& fileName )
+void CVPCB_MAINFRAME::SaveProjectFile( const wxString& fileName )
 {
     wxFileName fn = fileName;
 
diff --git a/cvpcb/class_DisplayFootprintsFrame.cpp b/cvpcb/class_DisplayFootprintsFrame.cpp
index 2140116021..3fa5e87ef4 100644
--- a/cvpcb/class_DisplayFootprintsFrame.cpp
+++ b/cvpcb/class_DisplayFootprintsFrame.cpp
@@ -12,7 +12,7 @@
 #include "cvpcb.h"
 #include "bitmaps.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 #include "class_DisplayFootprintsFrame.h"
 #include "cvpcb_id.h"
 
@@ -46,7 +46,7 @@ END_EVENT_TABLE()
 /* DISPLAY_FOOTPRINTS_FRAME: the frame to display the current focused footprint */
 /***************************************************************************/
 
-DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( WinEDA_CvpcbFrame* father,
+DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( CVPCB_MAINFRAME* father,
                                           const wxString& title,
                                           const wxPoint& pos,
                                           const wxSize& size, long style ) :
@@ -129,7 +129,7 @@ DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME()
     delete GetScreen();
     SetScreen( NULL );
 
-    ( (WinEDA_CvpcbFrame*) wxGetApp().GetTopWindow() )->DrawFrame = NULL;
+    ( (CVPCB_MAINFRAME*) wxGetApp().GetTopWindow() )->DrawFrame = NULL;
 }
 
 /* Called when the frame is closed
diff --git a/cvpcb/class_DisplayFootprintsFrame.h b/cvpcb/class_DisplayFootprintsFrame.h
index f3dda4784c..4f30dd151b 100644
--- a/cvpcb/class_DisplayFootprintsFrame.h
+++ b/cvpcb/class_DisplayFootprintsFrame.h
@@ -10,7 +10,7 @@ class DISPLAY_FOOTPRINTS_FRAME : public WinEDA_BasePcbFrame
 public:
 
 public:
-    DISPLAY_FOOTPRINTS_FRAME( WinEDA_CvpcbFrame* father,
+    DISPLAY_FOOTPRINTS_FRAME( CVPCB_MAINFRAME* father,
                          const wxString& title,
                          const wxPoint& pos, const wxSize& size,
                          long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
diff --git a/cvpcb/class_components_listbox.cpp b/cvpcb/class_components_listbox.cpp
index 3de4c9c6b7..a570829dba 100644
--- a/cvpcb/class_components_listbox.cpp
+++ b/cvpcb/class_components_listbox.cpp
@@ -8,6 +8,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 
 
@@ -15,7 +16,7 @@
 /* ListBox handling the schematic components list */
 /**************************************************/
 
-COMPONENTS_LISTBOX::COMPONENTS_LISTBOX( WinEDA_CvpcbFrame* parent, wxWindowID id,
+COMPONENTS_LISTBOX::COMPONENTS_LISTBOX( CVPCB_MAINFRAME* parent, wxWindowID id,
                                         const wxPoint& loc, const wxSize& size,
                                         int nbitems, wxString choice[] ) :
     ITEMS_LISTBOX_BASE( parent, id, loc, size )
diff --git a/cvpcb/class_footprints_listbox.cpp b/cvpcb/class_footprints_listbox.cpp
index 60ae593e0b..eff799c045 100644
--- a/cvpcb/class_footprints_listbox.cpp
+++ b/cvpcb/class_footprints_listbox.cpp
@@ -8,6 +8,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 
 
@@ -15,7 +16,7 @@
 /* ListBox handling the footprint list */
 /***************************************/
 
-FOOTPRINTS_LISTBOX::FOOTPRINTS_LISTBOX( WinEDA_CvpcbFrame* parent,
+FOOTPRINTS_LISTBOX::FOOTPRINTS_LISTBOX( CVPCB_MAINFRAME* parent,
                                         wxWindowID id, const wxPoint& loc,
                                         const wxSize& size,
                                         int nbitems, wxString choice[] ) :
diff --git a/cvpcb/cvframe.cpp b/cvpcb/cvframe.cpp
index e01d3bb458..c68b551ca4 100644
--- a/cvpcb/cvframe.cpp
+++ b/cvpcb/cvframe.cpp
@@ -13,6 +13,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 #include "dialog_cvpcb_config.h"
 #include "class_DisplayFootprintsFrame.h"
@@ -29,77 +30,77 @@ static const wxString KeepCvpcbOpenEntry( wxT( "KeepCvpcbOpen" ) );
 static const wxString FootprintDocFileEntry( wxT( "footprints_doc_file" ) );
 
 
-BEGIN_EVENT_TABLE( WinEDA_CvpcbFrame, EDA_BASE_FRAME )
-    EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, WinEDA_CvpcbFrame::LoadNetList )
+BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, EDA_BASE_FRAME )
+    EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, CVPCB_MAINFRAME::LoadNetList )
 
     // Menu events
     EVT_MENU( ID_LOAD_PROJECT,
-              WinEDA_CvpcbFrame::LoadNetList )
+              CVPCB_MAINFRAME::LoadNetList )
     EVT_MENU( ID_SAVE_PROJECT,
-              WinEDA_CvpcbFrame::SaveQuitCvpcb )
+              CVPCB_MAINFRAME::SaveQuitCvpcb )
     EVT_MENU( wxID_EXIT,
-              WinEDA_CvpcbFrame::OnQuit )
+              CVPCB_MAINFRAME::OnQuit )
     EVT_MENU( ID_GENERAL_HELP,
-              WinEDA_CvpcbFrame::GetKicadHelp )
+              CVPCB_MAINFRAME::GetKicadHelp )
     EVT_MENU( ID_KICAD_ABOUT,
-              WinEDA_CvpcbFrame::GetKicadAbout )
+              CVPCB_MAINFRAME::GetKicadAbout )
     EVT_MENU( ID_CONFIG_REQ,
-              WinEDA_CvpcbFrame::ConfigCvpcb )
+              CVPCB_MAINFRAME::ConfigCvpcb )
     EVT_MENU( ID_CONFIG_SAVE,
-              WinEDA_CvpcbFrame::Update_Config )
+              CVPCB_MAINFRAME::Update_Config )
     EVT_MENU( ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE,
-              WinEDA_CvpcbFrame::OnKeepOpenOnSave )
+              CVPCB_MAINFRAME::OnKeepOpenOnSave )
 
     EVT_MENU_RANGE( ID_LANGUAGE_CHOICE,
                     ID_LANGUAGE_CHOICE_END,
-                    WinEDA_CvpcbFrame::SetLanguage )
+                    CVPCB_MAINFRAME::SetLanguage )
 
     // Toolbar events
     EVT_TOOL( ID_CVPCB_QUIT,
-              WinEDA_CvpcbFrame::OnQuit )
+              CVPCB_MAINFRAME::OnQuit )
     EVT_TOOL( ID_CVPCB_READ_INPUT_NETLIST,
-              WinEDA_CvpcbFrame::LoadNetList )
+              CVPCB_MAINFRAME::LoadNetList )
     EVT_TOOL( ID_CVPCB_SAVEQUITCVPCB,
-              WinEDA_CvpcbFrame::SaveQuitCvpcb )
+              CVPCB_MAINFRAME::SaveQuitCvpcb )
     EVT_TOOL( ID_CVPCB_CREATE_CONFIGWINDOW,
-              WinEDA_CvpcbFrame::ConfigCvpcb )
+              CVPCB_MAINFRAME::ConfigCvpcb )
     EVT_TOOL( ID_CVPCB_CREATE_SCREENCMP,
-              WinEDA_CvpcbFrame::DisplayModule )
+              CVPCB_MAINFRAME::DisplayModule )
     EVT_TOOL( ID_CVPCB_GOTO_FIRSTNA,
-              WinEDA_CvpcbFrame::ToFirstNA )
+              CVPCB_MAINFRAME::ToFirstNA )
     EVT_TOOL( ID_CVPCB_GOTO_PREVIOUSNA,
-              WinEDA_CvpcbFrame::ToPreviousNA )
+              CVPCB_MAINFRAME::ToPreviousNA )
     EVT_TOOL( ID_CVPCB_DEL_ASSOCIATIONS,
-              WinEDA_CvpcbFrame::DelAssociations )
+              CVPCB_MAINFRAME::DelAssociations )
     EVT_TOOL( ID_CVPCB_AUTO_ASSOCIE,
-              WinEDA_CvpcbFrame::AssocieModule )
+              CVPCB_MAINFRAME::AssocieModule )
     EVT_TOOL( ID_CVPCB_CREATE_STUFF_FILE,
-              WinEDA_CvpcbFrame::WriteStuffList )
+              CVPCB_MAINFRAME::WriteStuffList )
     EVT_TOOL( ID_PCB_DISPLAY_FOOTPRINT_DOC,
-              WinEDA_CvpcbFrame::DisplayDocFile )
+              CVPCB_MAINFRAME::DisplayDocFile )
     EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST,
-              WinEDA_CvpcbFrame::OnSelectFilteringFootprint )
+              CVPCB_MAINFRAME::OnSelectFilteringFootprint )
     EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST,
-              WinEDA_CvpcbFrame::OnSelectFilteringFootprint )
+              CVPCB_MAINFRAME::OnSelectFilteringFootprint )
 
     // Frame events
-    EVT_CHAR( WinEDA_CvpcbFrame::OnChar )
-    EVT_CLOSE( WinEDA_CvpcbFrame::OnCloseWindow )
-    EVT_SIZE( WinEDA_CvpcbFrame::OnSize )
+    EVT_CHAR( CVPCB_MAINFRAME::OnChar )
+    EVT_CLOSE( CVPCB_MAINFRAME::OnCloseWindow )
+    EVT_SIZE( CVPCB_MAINFRAME::OnSize )
 
     // List item events
     EVT_LIST_ITEM_SELECTED( ID_CVPCB_FOOTPRINT_LIST,
-                            WinEDA_CvpcbFrame::OnLeftClick )
+                            CVPCB_MAINFRAME::OnLeftClick )
     EVT_LIST_ITEM_ACTIVATED( ID_CVPCB_FOOTPRINT_LIST,
-                             WinEDA_CvpcbFrame::OnLeftDClick )
+                             CVPCB_MAINFRAME::OnLeftDClick )
     EVT_LIST_ITEM_SELECTED( ID_CVPCB_COMPONENT_LIST,
-                            WinEDA_CvpcbFrame::OnSelectComponent )
+                            CVPCB_MAINFRAME::OnSelectComponent )
 
     EVT_UPDATE_UI( ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE,
-                   WinEDA_CvpcbFrame::OnUpdateKeepOpenOnSave )
+                   CVPCB_MAINFRAME::OnUpdateKeepOpenOnSave )
 END_EVENT_TABLE()
 
-WinEDA_CvpcbFrame::WinEDA_CvpcbFrame( const wxString& title, long style ) :
+CVPCB_MAINFRAME::CVPCB_MAINFRAME( const wxString& title, long style ) :
     EDA_BASE_FRAME( NULL, CVPCB_FRAME, title, wxDefaultPosition, wxDefaultSize, style )
 {
     m_FrameName = wxT( "CvpcbFrame" );
@@ -184,7 +185,7 @@ WinEDA_CvpcbFrame::WinEDA_CvpcbFrame( const wxString& title, long style ) :
 }
 
 
-WinEDA_CvpcbFrame::~WinEDA_CvpcbFrame()
+CVPCB_MAINFRAME::~CVPCB_MAINFRAME()
 {
     wxConfig* config = wxGetApp().m_EDA_Config;
 
@@ -205,7 +206,7 @@ WinEDA_CvpcbFrame::~WinEDA_CvpcbFrame()
  * Don't forget to call this base method from any derived classes or the
  * settings will not get loaded.
  */
-void WinEDA_CvpcbFrame::LoadSettings()
+void CVPCB_MAINFRAME::LoadSettings()
 {
     wxASSERT( wxGetApp().m_EDA_Config != NULL );
 
@@ -224,7 +225,7 @@ void WinEDA_CvpcbFrame::LoadSettings()
  * Don't forget to call this base method from any derived classes or the
  * settings will not get saved.
  */
-void WinEDA_CvpcbFrame::SaveSettings()
+void CVPCB_MAINFRAME::SaveSettings()
 {
     wxASSERT( wxGetApp().m_EDA_Config != NULL );
 
@@ -236,19 +237,19 @@ void WinEDA_CvpcbFrame::SaveSettings()
 }
 
 
-void WinEDA_CvpcbFrame::OnSize( wxSizeEvent& event )
+void CVPCB_MAINFRAME::OnSize( wxSizeEvent& event )
 {
     event.Skip();
 }
 
 
-void WinEDA_CvpcbFrame::OnQuit( wxCommandEvent& event )
+void CVPCB_MAINFRAME::OnQuit( wxCommandEvent& event )
 {
     Close( TRUE );
 }
 
 
-void WinEDA_CvpcbFrame::OnCloseWindow( wxCloseEvent& Event )
+void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
 {
     int diag;
 
@@ -309,7 +310,7 @@ void WinEDA_CvpcbFrame::OnCloseWindow( wxCloseEvent& Event )
 }
 
 
-void WinEDA_CvpcbFrame::OnChar( wxKeyEvent& event )
+void CVPCB_MAINFRAME::OnChar( wxKeyEvent& event )
 {
     switch( event.GetKeyCode() )
     {
@@ -330,7 +331,7 @@ void WinEDA_CvpcbFrame::OnChar( wxKeyEvent& event )
 }
 
 
-void WinEDA_CvpcbFrame::ToFirstNA( wxCommandEvent& event )
+void CVPCB_MAINFRAME::ToFirstNA( wxCommandEvent& event )
 {
     int ii = 0;
     int selection;
@@ -357,7 +358,7 @@ void WinEDA_CvpcbFrame::ToFirstNA( wxCommandEvent& event )
 }
 
 
-void WinEDA_CvpcbFrame::ToPreviousNA( wxCommandEvent& event )
+void CVPCB_MAINFRAME::ToPreviousNA( wxCommandEvent& event )
 {
     int ii;
     int selection;
@@ -384,7 +385,7 @@ void WinEDA_CvpcbFrame::ToPreviousNA( wxCommandEvent& event )
 }
 
 
-void WinEDA_CvpcbFrame::SaveQuitCvpcb( wxCommandEvent& event )
+void CVPCB_MAINFRAME::SaveQuitCvpcb( wxCommandEvent& event )
 {
     if( SaveNetList( wxEmptyString ) > 0 )
     {
@@ -398,7 +399,7 @@ void WinEDA_CvpcbFrame::SaveQuitCvpcb( wxCommandEvent& event )
 /* Removes all associations already made
  */
 
-void WinEDA_CvpcbFrame::DelAssociations( wxCommandEvent& event )
+void CVPCB_MAINFRAME::DelAssociations( wxCommandEvent& event )
 {
     wxString Line;
 
@@ -424,7 +425,7 @@ void WinEDA_CvpcbFrame::DelAssociations( wxCommandEvent& event )
  * Called when click on Load Netlist button or by file history menu entries
  * Read a netlist selected by user
  */
-void WinEDA_CvpcbFrame::LoadNetList( wxCommandEvent& event )
+void CVPCB_MAINFRAME::LoadNetList( wxCommandEvent& event )
 {
     wxString   oldPath;
     wxFileName newFileName;
@@ -474,7 +475,7 @@ void WinEDA_CvpcbFrame::LoadNetList( wxCommandEvent& event )
 }
 
 
-void WinEDA_CvpcbFrame::ConfigCvpcb( wxCommandEvent& event )
+void CVPCB_MAINFRAME::ConfigCvpcb( wxCommandEvent& event )
 {
     DIALOG_CVPCB_CONFIG ConfigFrame( this );
 
@@ -482,13 +483,13 @@ void WinEDA_CvpcbFrame::ConfigCvpcb( wxCommandEvent& event )
 }
 
 
-void WinEDA_CvpcbFrame::OnKeepOpenOnSave( wxCommandEvent& event )
+void CVPCB_MAINFRAME::OnKeepOpenOnSave( wxCommandEvent& event )
 {
     m_KeepCvpcbOpen = event.IsChecked();
 }
 
 
-void WinEDA_CvpcbFrame::DisplayModule( wxCommandEvent& event )
+void CVPCB_MAINFRAME::DisplayModule( wxCommandEvent& event )
 {
     CreateScreenCmp();
     DrawFrame->AdjustScrollBars();
@@ -499,32 +500,32 @@ void WinEDA_CvpcbFrame::DisplayModule( wxCommandEvent& event )
 /** Vitual function SetLanguage
  * called on a language menu selection
  */
-void WinEDA_CvpcbFrame::SetLanguage( wxCommandEvent& event )
+void CVPCB_MAINFRAME::SetLanguage( wxCommandEvent& event )
 {
     EDA_BASE_FRAME::SetLanguage( event );
 }
 
 
-void WinEDA_CvpcbFrame::DisplayDocFile( wxCommandEvent& event )
+void CVPCB_MAINFRAME::DisplayDocFile( wxCommandEvent& event )
 {
     GetAssociatedDocument( this, m_DocModulesFileName,
                            &wxGetApp().GetLibraryPathList() );
 }
 
 
-void WinEDA_CvpcbFrame::OnLeftClick( wxListEvent& event )
+void CVPCB_MAINFRAME::OnLeftClick( wxListEvent& event )
 {
     m_FootprintList->OnLeftClick( event );
 }
 
 
-void WinEDA_CvpcbFrame::OnLeftDClick( wxListEvent& event )
+void CVPCB_MAINFRAME::OnLeftDClick( wxListEvent& event )
 {
     m_FootprintList->OnLeftDClick( event );
 }
 
 
-void WinEDA_CvpcbFrame::OnSelectComponent( wxListEvent& event )
+void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event )
 {
     int selection;
 
@@ -555,7 +556,7 @@ void WinEDA_CvpcbFrame::OnSelectComponent( wxListEvent& event )
 
 /* Select full/filtered footprint display on tool click
  */
-void WinEDA_CvpcbFrame::OnSelectFilteringFootprint( wxCommandEvent& event )
+void CVPCB_MAINFRAME::OnSelectFilteringFootprint( wxCommandEvent& event )
 {
     switch (event.GetId() )
     {
@@ -574,7 +575,7 @@ void WinEDA_CvpcbFrame::OnSelectFilteringFootprint( wxCommandEvent& event )
 }
 
 
-void WinEDA_CvpcbFrame::OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event )
+void CVPCB_MAINFRAME::OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event )
 {
     event.Check( m_KeepCvpcbOpen );
 }
@@ -583,7 +584,7 @@ void WinEDA_CvpcbFrame::OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event )
 /** DisplayStatus()
  * Displays info to the status line at bottom of the main frame
  */
-void WinEDA_CvpcbFrame::DisplayStatus()
+void CVPCB_MAINFRAME::DisplayStatus()
 {
     wxString msg;
     msg.Printf( _( "Components: %d (free: %d)" ),
diff --git a/cvpcb/cvpcb.cpp b/cvpcb/cvpcb.cpp
index 4519ef9521..6978deab98 100644
--- a/cvpcb/cvpcb.cpp
+++ b/cvpcb/cvpcb.cpp
@@ -13,7 +13,7 @@
 #include "zones.h"
 #include "bitmaps.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 #include "colors_selection.h"
 #include "cvpcb_id.h"
 
@@ -44,7 +44,7 @@ void WinEDA_App::MacOpenFile(const wxString &fileName)
 {
     wxFileName    filename = fileName;
     wxString      oldPath;
-    WinEDA_CvpcbFrame * frame = ((WinEDA_CvpcbFrame*)GetTopWindow());
+    CVPCB_MAINFRAME * frame = ((CVPCB_MAINFRAME*)GetTopWindow());
 
     if(!filename.FileExists())
 	return;
@@ -94,7 +94,7 @@ bool WinEDA_App::OnInit()
 
     wxFileName         filename;
     wxString           message;
-    WinEDA_CvpcbFrame* frame   = NULL;
+    CVPCB_MAINFRAME* frame   = NULL;
 
     InitEDA_Appl( wxT( "CvPCB" ), APP_TYPE_CVPCB );
 
@@ -117,7 +117,7 @@ bool WinEDA_App::OnInit()
     g_DrawBgColor = BLACK;
 
     wxString Title = GetTitle() + wxT( " " ) + GetBuildVersion();
-    frame = new WinEDA_CvpcbFrame( Title );
+    frame = new CVPCB_MAINFRAME( Title );
 
     // Show the frame
     SetTopWindow( frame );
@@ -137,7 +137,7 @@ bool WinEDA_App::OnInit()
         }
     }
 
-    LoadFootprintFiles( frame->m_ModuleLibNames, frame->m_footprints );
+    frame->LoadFootprintFiles();
     frame->m_NetlistFileExtension = wxT( "net" );
     frame->m_NetlistFileName.Clear();
     frame->SetTitle( GetTitle() + wxT( " " ) + GetBuildVersion() +
diff --git a/cvpcb/cvpcb_mainframe.h b/cvpcb/cvpcb_mainframe.h
new file mode 100644
index 0000000000..26bccfe38a
--- /dev/null
+++ b/cvpcb/cvpcb_mainframe.h
@@ -0,0 +1,116 @@
+/**
+ * @file cvpcb_mainframe.h
+ */
+
+#ifndef _CVPCB_MAINFRAME_H_
+#define _CVPCB_MAINFRAME_H_
+
+#include "wx/listctrl.h"
+#include <wx/filename.h>
+#include "param_config.h"
+#include "cvpcb.h"
+
+/*  Forward declarations of all top-level window classes. */
+class FOOTPRINTS_LISTBOX;
+class COMPONENTS_LISTBOX;
+class DISPLAY_FOOTPRINTS_FRAME;
+
+
+
+/**
+ * The CVPcb application main window.
+ */
+class CVPCB_MAINFRAME : public EDA_BASE_FRAME
+{
+public:
+
+    bool m_KeepCvpcbOpen;
+    FOOTPRINTS_LISTBOX*  m_FootprintList;
+    COMPONENTS_LISTBOX*  m_ListCmp;
+    DISPLAY_FOOTPRINTS_FRAME* DrawFrame;
+    WinEDA_Toolbar*      m_HToolBar;
+    wxFileName           m_NetlistFileName;
+    wxArrayString        m_ModuleLibNames;
+    wxArrayString        m_AliasLibNames;
+    wxString             m_UserLibraryPath;
+    wxString             m_NetlistFileExtension;
+    wxString             m_DocModulesFileName;
+    FOOTPRINT_LIST       m_footprints;
+    COMPONENT_LIST       m_components;
+
+protected:
+    int             m_undefinedComponentCnt;
+    bool            m_modified;
+    bool            m_rightJustify;
+    bool            m_isEESchemaNetlist;
+    PARAM_CFG_ARRAY m_projectFileParams;
+
+public:
+    CVPCB_MAINFRAME( const wxString& title,
+                       long            style = KICAD_DEFAULT_DRAWFRAME_STYLE );
+    ~CVPCB_MAINFRAME();
+
+    void             OnLeftClick( wxListEvent& event );
+    void             OnLeftDClick( wxListEvent& event );
+    void             OnSelectComponent( wxListEvent& event );
+
+    void             Update_Config( wxCommandEvent& event );
+    void             OnQuit( wxCommandEvent& event );
+    void             OnCloseWindow( wxCloseEvent& Event );
+    void             OnSize( wxSizeEvent& SizeEvent );
+    void             OnChar( wxKeyEvent& event );
+    void             ReCreateHToolbar();
+    virtual void     ReCreateMenuBar();
+    void             SetLanguage( wxCommandEvent& event );
+
+    void             ToFirstNA( wxCommandEvent& event );
+    void             ToPreviousNA( wxCommandEvent& event );
+    void             DelAssociations( wxCommandEvent& event );
+    void             SaveQuitCvpcb( wxCommandEvent& event );
+    void             LoadNetList( wxCommandEvent& event );
+    void             ConfigCvpcb( wxCommandEvent& event );
+    void             OnKeepOpenOnSave( wxCommandEvent& event );
+    void             DisplayModule( wxCommandEvent& event );
+    void             AssocieModule( wxCommandEvent& event );
+    void             WriteStuffList( wxCommandEvent& event );
+    void             DisplayDocFile( wxCommandEvent& event );
+    void             OnSelectFilteringFootprint( wxCommandEvent& event );
+
+    void             OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event );
+
+    void             SetNewPkg( const wxString& package );
+    void             BuildCmpListBox();
+    void             BuildFOOTPRINTS_LISTBOX();
+    void             CreateScreenCmp();
+    int              SaveNetList( const wxString& FullFileName );
+    int              SaveComponentList( const wxString& FullFileName );
+    bool             ReadNetList();
+    int              ReadSchematicNetlist();
+    void             LoadProjectFile( const wxString& FileName );
+    void             SaveProjectFile( const wxString& fileName );
+    virtual void     LoadSettings();
+    virtual void     SaveSettings();
+    /** DisplayStatus()
+     * Displays info to the status line at bottom of the main frame
+     */
+    void             DisplayStatus();
+
+    /**
+     * Function LoadFootprintFiles
+     * Read the list of libraries (*.mod files) and generate the list of modules.
+     * for each module are stored
+     *      the module name
+     *      documentation string
+     *      associated keywords
+     * m_ModuleLibNames is the list of library that must be read (loaded)
+     * fills m_footprints
+     * @return true if libraries are found, false otherwise.
+     */
+    bool LoadFootprintFiles( );
+
+    PARAM_CFG_ARRAY& GetProjectFileParameters( void );
+
+    DECLARE_EVENT_TABLE()
+};
+
+#endif  //#ifndef _CVPCB_MAINFRAME_H_
diff --git a/cvpcb/cvstruct.h b/cvpcb/cvstruct.h
index 4116c2a874..a0e1e5d01b 100644
--- a/cvpcb/cvstruct.h
+++ b/cvpcb/cvstruct.h
@@ -6,99 +6,10 @@
 #define CVSTRUCT_H
 
 #include "wx/listctrl.h"
-#include <wx/filename.h>
-#include "param_config.h"
 #include "cvpcb.h"
 
 /*  Forward declarations of all top-level window classes. */
-class FOOTPRINTS_LISTBOX;
-class COMPONENTS_LISTBOX;
-class DISPLAY_FOOTPRINTS_FRAME;
-
-
-
-/**
- * The CVPcb application main window.
- */
-class WinEDA_CvpcbFrame : public EDA_BASE_FRAME
-{
-public:
-
-    bool m_KeepCvpcbOpen;
-    FOOTPRINTS_LISTBOX*  m_FootprintList;
-    COMPONENTS_LISTBOX*  m_ListCmp;
-    DISPLAY_FOOTPRINTS_FRAME* DrawFrame;
-    WinEDA_Toolbar*      m_HToolBar;
-    wxFileName           m_NetlistFileName;
-    wxArrayString        m_ModuleLibNames;
-    wxArrayString        m_AliasLibNames;
-    wxString             m_UserLibraryPath;
-    wxString             m_NetlistFileExtension;
-    wxString             m_DocModulesFileName;
-    FOOTPRINT_LIST       m_footprints;
-    COMPONENT_LIST       m_components;
-
-protected:
-    int             m_undefinedComponentCnt;
-    bool            m_modified;
-    bool            m_rightJustify;
-    bool            m_isEESchemaNetlist;
-    PARAM_CFG_ARRAY m_projectFileParams;
-
-public:
-    WinEDA_CvpcbFrame( const wxString& title,
-                       long            style = KICAD_DEFAULT_DRAWFRAME_STYLE );
-    ~WinEDA_CvpcbFrame();
-
-    void             OnLeftClick( wxListEvent& event );
-    void             OnLeftDClick( wxListEvent& event );
-    void             OnSelectComponent( wxListEvent& event );
-
-    void             Update_Config( wxCommandEvent& event );
-    void             OnQuit( wxCommandEvent& event );
-    void             OnCloseWindow( wxCloseEvent& Event );
-    void             OnSize( wxSizeEvent& SizeEvent );
-    void             OnChar( wxKeyEvent& event );
-    void             ReCreateHToolbar();
-    virtual void     ReCreateMenuBar();
-    void             SetLanguage( wxCommandEvent& event );
-
-    void             ToFirstNA( wxCommandEvent& event );
-    void             ToPreviousNA( wxCommandEvent& event );
-    void             DelAssociations( wxCommandEvent& event );
-    void             SaveQuitCvpcb( wxCommandEvent& event );
-    void             LoadNetList( wxCommandEvent& event );
-    void             ConfigCvpcb( wxCommandEvent& event );
-    void             OnKeepOpenOnSave( wxCommandEvent& event );
-    void             DisplayModule( wxCommandEvent& event );
-    void             AssocieModule( wxCommandEvent& event );
-    void             WriteStuffList( wxCommandEvent& event );
-    void             DisplayDocFile( wxCommandEvent& event );
-    void             OnSelectFilteringFootprint( wxCommandEvent& event );
-
-    void             OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event );
-
-    void             SetNewPkg( const wxString& package );
-    void             BuildCmpListBox();
-    void             BuildFOOTPRINTS_LISTBOX();
-    void             CreateScreenCmp();
-    int              SaveNetList( const wxString& FullFileName );
-    int              SaveComponentList( const wxString& FullFileName );
-    bool             ReadNetList();
-    int              ReadSchematicNetlist();
-    void             LoadProjectFile( const wxString& FileName );
-    void             SaveProjectFile( const wxString& fileName );
-    virtual void     LoadSettings();
-    virtual void     SaveSettings();
-    /** DisplayStatus()
-     * Displays info to the status line at bottom of the main frame
-     */
-    void             DisplayStatus();
-
-    PARAM_CFG_ARRAY& GetProjectFileParameters( void );
-
-    DECLARE_EVENT_TABLE()
-};
+class CVPCB_MAINFRAME;
 
 
 /*********************************************************************/
@@ -107,7 +18,7 @@ public:
 class ITEMS_LISTBOX_BASE : public wxListView
 {
 public:
-    ITEMS_LISTBOX_BASE( WinEDA_CvpcbFrame* aParent, wxWindowID aId,
+    ITEMS_LISTBOX_BASE( CVPCB_MAINFRAME* aParent, wxWindowID aId,
                         const wxPoint& aLocation, const wxSize& aSize );
 
     ~ITEMS_LISTBOX_BASE();
@@ -115,7 +26,7 @@ public:
     int                        GetSelection();
     void                       OnSize( wxSizeEvent& event );
 
-    virtual WinEDA_CvpcbFrame* GetParent();
+    virtual CVPCB_MAINFRAME* GetParent();
 };
 
 /******************************************/
@@ -132,7 +43,7 @@ public:
     bool           m_UseFootprintFullList;
 
 public:
-    FOOTPRINTS_LISTBOX( WinEDA_CvpcbFrame* parent, wxWindowID id,
+    FOOTPRINTS_LISTBOX( CVPCB_MAINFRAME* parent, wxWindowID id,
                         const wxPoint& loc, const wxSize& size,
                         int nbitems, wxString choice[] );
     ~FOOTPRINTS_LISTBOX();
@@ -165,11 +76,11 @@ class COMPONENTS_LISTBOX : public ITEMS_LISTBOX_BASE
 {
 public:
     wxArrayString      m_ComponentList;
-    WinEDA_CvpcbFrame* m_Parent;
+    CVPCB_MAINFRAME* m_Parent;
 
 public:
 
-    COMPONENTS_LISTBOX( WinEDA_CvpcbFrame* parent, wxWindowID id,
+    COMPONENTS_LISTBOX( CVPCB_MAINFRAME* parent, wxWindowID id,
                         const wxPoint& loc, const wxSize& size,
                         int nbitems, wxString choice[] );
 
diff --git a/cvpcb/dialogs/dialog_cvpcb_config.cpp b/cvpcb/dialogs/dialog_cvpcb_config.cpp
index d8c86406ab..b49f65bbb0 100644
--- a/cvpcb/dialogs/dialog_cvpcb_config.cpp
+++ b/cvpcb/dialogs/dialog_cvpcb_config.cpp
@@ -12,14 +12,14 @@
 #include "gestfich.h"
 
 #include "cvpcb.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 
 #include "protos.h"
 
 #include "dialog_cvpcb_config.h"
 
 
-DIALOG_CVPCB_CONFIG::DIALOG_CVPCB_CONFIG( WinEDA_CvpcbFrame* parent ) :
+DIALOG_CVPCB_CONFIG::DIALOG_CVPCB_CONFIG( CVPCB_MAINFRAME* parent ) :
     DIALOG_CVPCB_CONFIG_FBP( parent )
 {
     wxString title;
@@ -121,8 +121,7 @@ void DIALOG_CVPCB_CONFIG::OnOkClick( wxCommandEvent& event )
         for( unsigned ii = 0; ii < m_ListEquiv->GetCount(); ii++ )
             m_Parent->m_AliasLibNames.Add( m_ListEquiv->GetString( ii ) );
 
-        LoadFootprintFiles( m_Parent->m_ModuleLibNames,
-                            m_Parent->m_footprints );
+        m_Parent->LoadFootprintFiles();
         m_Parent->BuildFOOTPRINTS_LISTBOX();
     }
 
diff --git a/cvpcb/dialogs/dialog_cvpcb_config.h b/cvpcb/dialogs/dialog_cvpcb_config.h
index 5916222f88..3d8401efe2 100644
--- a/cvpcb/dialogs/dialog_cvpcb_config.h
+++ b/cvpcb/dialogs/dialog_cvpcb_config.h
@@ -13,7 +13,7 @@
 class DIALOG_CVPCB_CONFIG : public DIALOG_CVPCB_CONFIG_FBP
 {
 private:
-    WinEDA_CvpcbFrame* m_Parent;
+    CVPCB_MAINFRAME* m_Parent;
     wxConfig * m_Config;
     wxString             m_UserLibDirBufferImg;
     bool m_LibListChanged;
@@ -36,7 +36,7 @@ private:
 
 
 public:
-    DIALOG_CVPCB_CONFIG( WinEDA_CvpcbFrame* parent );
+    DIALOG_CVPCB_CONFIG( CVPCB_MAINFRAME* parent );
     ~DIALOG_CVPCB_CONFIG() {};
 };
 
diff --git a/cvpcb/genequiv.cpp b/cvpcb/genequiv.cpp
index e5352912c1..169ee40f5d 100644
--- a/cvpcb/genequiv.cpp
+++ b/cvpcb/genequiv.cpp
@@ -10,10 +10,10 @@
 
 #include "cvpcb.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 
 
-void WinEDA_CvpcbFrame::WriteStuffList( wxCommandEvent& event )
+void CVPCB_MAINFRAME::WriteStuffList( wxCommandEvent& event )
 {
     FILE*      FileEquiv;
     wxString   Line;
diff --git a/cvpcb/init.cpp b/cvpcb/init.cpp
index ec5392ab51..4f0b7a795e 100644
--- a/cvpcb/init.cpp
+++ b/cvpcb/init.cpp
@@ -11,6 +11,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 
 #include "build_version.h"
@@ -19,7 +20,7 @@
  * Set the module to the selected component
  * Selects the next component
  */
-void WinEDA_CvpcbFrame::SetNewPkg( const wxString& package )
+void CVPCB_MAINFRAME::SetNewPkg( const wxString& package )
 {
     COMPONENT* Component;
     bool       isUndefined = false;
@@ -69,7 +70,7 @@ void WinEDA_CvpcbFrame::SetNewPkg( const wxString& package )
 /*
  * Read the netlist format and file components.
  */
-bool WinEDA_CvpcbFrame::ReadNetList()
+bool CVPCB_MAINFRAME::ReadNetList()
 {
     wxString   msg;
     int        error_level;
@@ -90,7 +91,7 @@ bool WinEDA_CvpcbFrame::ReadNetList()
         return false;
 
     LoadProjectFile( m_NetlistFileName.GetFullPath() );
-    LoadFootprintFiles( m_ModuleLibNames, m_footprints );
+    LoadFootprintFiles( );
     BuildFOOTPRINTS_LISTBOX();
 
     m_ListCmp->Clear();
@@ -124,7 +125,7 @@ bool WinEDA_CvpcbFrame::ReadNetList()
  * The full name of the netlist file must be in FFileName.
  * The file name is deducted in cmp
  */
-int WinEDA_CvpcbFrame::SaveNetList( const wxString& fileName )
+int CVPCB_MAINFRAME::SaveNetList( const wxString& fileName )
 {
     wxFileName fn;
 
diff --git a/cvpcb/listboxes.cpp b/cvpcb/listboxes.cpp
index fb1c6a652a..03d5665023 100644
--- a/cvpcb/listboxes.cpp
+++ b/cvpcb/listboxes.cpp
@@ -8,6 +8,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 #include "cvpcb_id.h"
 
@@ -20,7 +21,7 @@
 #define LISTB_STYLE wxSUNKEN_BORDER | wxLC_NO_HEADER | \
     wxLC_SINGLE_SEL | wxLC_REPORT | wxLC_VIRTUAL
 
-ITEMS_LISTBOX_BASE::ITEMS_LISTBOX_BASE( WinEDA_CvpcbFrame* aParent, wxWindowID aId,
+ITEMS_LISTBOX_BASE::ITEMS_LISTBOX_BASE( CVPCB_MAINFRAME* aParent, wxWindowID aId,
                                         const wxPoint& aLocation, const wxSize& aSize ) :
     wxListView( aParent, aId, aLocation, aSize, LISTB_STYLE )
 {
@@ -57,16 +58,16 @@ int ITEMS_LISTBOX_BASE::GetSelection()
 }
 
 
-WinEDA_CvpcbFrame* ITEMS_LISTBOX_BASE::GetParent()
+CVPCB_MAINFRAME* ITEMS_LISTBOX_BASE::GetParent()
 {
-    return (WinEDA_CvpcbFrame*) wxListView::GetParent();
+    return (CVPCB_MAINFRAME*) wxListView::GetParent();
 }
 
 
 /*
  * Create or update the schematic components list.
  */
-void WinEDA_CvpcbFrame::BuildCmpListBox()
+void CVPCB_MAINFRAME::BuildCmpListBox()
 {
     wxString msg;
     wxSize   size( 10, 10 );
@@ -103,7 +104,7 @@ void WinEDA_CvpcbFrame::BuildCmpListBox()
 /*
  * Create or update the footprint list.
  */
-void WinEDA_CvpcbFrame::BuildFOOTPRINTS_LISTBOX()
+void CVPCB_MAINFRAME::BuildFOOTPRINTS_LISTBOX()
 {
     wxString msg;
     wxSize   size( 10, 10 );
diff --git a/cvpcb/listlib.cpp b/cvpcb/listlib.cpp
index 09428a62c4..73ef40a80e 100644
--- a/cvpcb/listlib.cpp
+++ b/cvpcb/listlib.cpp
@@ -1,240 +1,174 @@
 /***************/
-/* listlib.cpp */
+/* m_footprintslib.cpp */
 /**(************/
 
 
 /*
- * Functions to read footprint libraries and create the list of availlable footprints
+ * Functions to read footprint libraries and create the m_footprints of availlable footprints
  * and their documentation (comments and keywords)
  */
 #include "fctsys.h"
 #include "wxstruct.h"
 #include "common.h"
-#include "confirm.h"
 #include "kicad_string.h"
-#include "gestfich.h"
 #include "macros.h"
 #include "appl_wxstruct.h"
 
 #include "cvpcb.h"
-#include "protos.h"
+#include "cvstruct.h"
+#include "richio.h"
+#include "filter_reader.h"
 
 #include "dialog_load_error.h"
 
-/* MDC and MOD file strings */
-static wxString s_files_not_found;
-static wxString s_files_invalid;
-
-
-static void ReadDocLib( const wxString& ModLibName, FOOTPRINT_LIST& list );
-
-
-/**
- * Read the list of libraries and generate a list modules.
- *
+/*
+ * Read the list of libraries (*.mod files) and generate a m_footprints of modules.
+ * for each module are stored
+ *      the module name
+ *      documentation string
+ *      associated keywords
  * Module description format:
- *   $MODULE c64acmd
- *     Li c64acmd DIN connector
- *     Cd Europe 96 Contact AC male right
- *     Kw PAD_CONN DIN
+ *   $MODULE c64acmd                    First line of module description
+ *   Li c64acmd DIN connector           Library reference
+ *   Cd Europe 96 AC male vertical      documentation string
+ *   Kw PAD_CONN DIN                    associated keywords
+ *   ...... other data (pads, outlines ..)
  *   $Endmodule
  *
  */
-bool LoadFootprintFiles( const wxArrayString& libNames,
-                         FOOTPRINT_LIST& list )
+bool CVPCB_MAINFRAME::LoadFootprintFiles( )
 {
     FILE*       file;
-    char        buffer[1024];
     wxFileName  filename;
-    int         end;
-    FOOTPRINT*  ItemLib;
-    unsigned    i;
-    wxString    tmp, msg;
-    char*       result;
+    wxString    libname;
+    wxString files_not_found;
+    wxString files_invalid;
 
-    /* Check if footprint list is not empty */
-    if( !list.empty() )
-        list.clear();
+    /* Check if footprint m_footprints is not empty */
+    if( !m_footprints.empty() )
+        m_footprints.clear();
 
     /* Check if there are footprint libraries in project file */
-    if( libNames.GetCount() == 0 )
+    if( m_ModuleLibNames.GetCount() == 0 )
     {
-        wxMessageBox( _( "No PCB foot print libraries are listed in the current project file." ),
+        wxMessageBox( _( "No PCB foot print libraries are m_footprintsed in the current project file." ),
                       _( "Project File Error" ), wxOK | wxICON_ERROR );
         return false;
     }
 
     /* Parse Libraries Listed */
-    for( i = 0; i < libNames.GetCount(); i++ )
+    for( unsigned ii = 0; ii < m_ModuleLibNames.GetCount(); ii++ )
     {
-        filename = libNames[i];
+        filename = m_ModuleLibNames[ii];
         filename.SetExt( ModuleFileExtension );
 
-        tmp = wxGetApp().FindLibraryPath( filename );
+        libname = wxGetApp().FindLibraryPath( filename );
 
-        if( !tmp )
+        if( libname.IsEmpty() )
         {
-            s_files_not_found << filename.GetFullName() << wxT("\n");
+            files_not_found << filename.GetFullName() << wxT("\n");
             continue;
         }
 
         /* Open library file */
-        file = wxFopen( tmp, wxT( "rt" ) );
+        file = wxFopen( libname, wxT( "rt" ) );
 
         if( file == NULL )
         {
-            s_files_invalid << tmp <<  _(" (file cannot be opened)") << wxT("\n");
+            files_invalid << libname <<  _(" (file cannot be opened)") << wxT("\n");
             continue;
         }
 
-        /* Check if library type is valid */
-        result = fgets( buffer, 32, file );
-        if( strncmp( buffer, ENTETE_LIBRAIRIE, L_ENTETE_LIB ) != 0 )
+        FILE_LINE_READER fileReader( file, libname );
+
+        FILTER_READER reader( fileReader );
+
+        /* Read header. */
+        reader.ReadLine();
+        char * Line = reader.Line();
+        StrPurge( Line );
+
+        if( strnicmp( Line, ENTETE_LIBRAIRIE, L_ENTETE_LIB ) != 0 )
         {
-            s_files_invalid << tmp << _(" (Not a Kicad file)") << wxT("\n");
+            wxString msg;
+            msg.Printf( _( "<%s> is not a valid Kicad PCB footprint library." ),
+                        GetChars( libname ) );
+            files_invalid << msg << wxT("\n");
             fclose( file );
             continue;
         }
 
-        /* TODO: Read the number of components. */
-        fseek( file, 0, 0 );
-
-        end = 0;
-        while( !end && fgets( buffer, 255, file ) != NULL )
+        // Read library
+        bool end = false;
+        while( !end && reader.ReadLine() )
         {
-            if( strnicmp( buffer, "$INDEX", 6 ) == 0 )
+            Line = reader.Line();
+            StrPurge( Line );
+            if( strnicmp( Line, "$EndLIBRARY", 11 ) == 0 )
             {
-                while( fgets( buffer, 255, file ) != NULL )
+                end = true;
+                break;
+            }
+            if( strnicmp( Line, "$MODULE", 7 ) == 0 )
+            {
+
+                Line += 7;
+                FOOTPRINT*  ItemLib = new FOOTPRINT();
+                ItemLib->m_Module = CONV_FROM_UTF8( StrPurge( Line ) );
+                ItemLib->m_LibName = libname;
+                m_footprints.push_back( ItemLib );
+
+                while( reader.ReadLine() )
                 {
-                    if( strnicmp( buffer, "$EndINDEX", 6 ) == 0 )
-                    {
-                        end = 1;
+                    Line = reader.Line();
+                    StrPurge( Line );
+                    if( strnicmp( Line, "$EndMODULE", 10 ) == 0 )
                         break;
+
+                    int id = ((Line[0] & 0xFF) << 8) + (Line[1] & 0xFF);
+                    switch( id )
+                    {
+                    /* KeyWords */
+                    case (('K'<<8) + 'w'):
+                        ItemLib->m_KeyWord = CONV_FROM_UTF8( StrPurge( Line + 3 ) );
+                    break;
+
+                    /* Doc */
+                    case (('C'<<8) + 'd'):
+                        ItemLib->m_Doc = CONV_FROM_UTF8( StrPurge( Line + 3 ) );
+                    break;
                     }
-
-                    ItemLib = new FOOTPRINT();
-                    ItemLib->m_Module = CONV_FROM_UTF8( StrPurge( buffer ) );
-                    ItemLib->m_LibName = tmp;
-                    list.push_back( ItemLib );
-                }
-
-                if( !end )
-                {
-                    s_files_invalid << tmp << _(" (Unexpected end of file)") << wxT("\n");
                 }
             }
         }
 
         fclose( file );
-        ReadDocLib( tmp, list );
+        if( !end )
+        {
+            files_invalid << libname << _(" (Unexpected end of file)") << wxT("\n");
+        }
     }
+    m_footprints.sort();
 
-    /* Display if there are mdc files not found */
-    if( !s_files_not_found.IsEmpty() || !s_files_invalid.IsEmpty() )
+    /* Display error messages, if any */
+    if( !files_not_found.IsEmpty() || !files_invalid.IsEmpty() )
     {
         DIALOG_LOAD_ERROR dialog(NULL);
-        if( !s_files_not_found.IsEmpty() )
+        if( !files_not_found.IsEmpty() )
         {
             wxString message = _("Some files could not be found!");
             dialog.MessageSet(message);
-            dialog.ListSet(s_files_not_found);
-            s_files_not_found.Empty();
+            dialog.ListSet(files_not_found);
         }
 
-        /* Display if there are mdc files invalid */
-        if( !s_files_invalid.IsEmpty() )
+        /* Display if there are invalid files */
+        if( !files_invalid.IsEmpty() )
         {
             dialog.MessageSet( _("Some files are invalid!"));
-            dialog.ListSet(s_files_invalid);
-            s_files_invalid.Empty();
+            dialog.ListSet(files_invalid);
         }
         dialog.ShowModal();
     }
 
-    list.sort();
-
     return true;
 }
-
-
-/**
- * Read the file Doc combines a library ModLibName.
- * Create the list of doc strings pointed to by list
- * ModLibName = full file name of the library modules
- */
-static void ReadDocLib( const wxString& ModLibName, FOOTPRINT_LIST& list )
-{
-    FOOTPRINT* NewMod;
-    char       Line[1024];
-    wxString   ModuleName;
-    FILE*      mdc_file;
-    wxFileName mdc_filename = ModLibName;
-
-    /* Set mdc filename extension */
-    mdc_filename.SetExt( wxT( "mdc" ) );
-
-    /* Check if mdc file exists and can be opened */
-    if( ( mdc_file = wxFopen( mdc_filename.GetFullPath(), wxT( "rt" ) ) ) == NULL )
-    {
-        s_files_not_found += mdc_filename.GetFullPath() + wxT("\n");
-        return;
-    }
-
-    /* Check if mdc file is valid */
-    GetLine( mdc_file, Line, NULL, sizeof(Line) - 1 );
-    if( strnicmp( Line, ENTETE_LIBDOC, L_ENTETE_LIB ) != 0 )
-    {
-        s_files_invalid += mdc_filename.GetFullPath() + wxT("\n");
-        return;
-    }
-
-    /* Read the mdc file */
-    while( GetLine( mdc_file, Line, NULL, sizeof(Line) - 1 ) )
-    {
-        NewMod = NULL;
-        if( Line[0] != '$' )
-            continue;
-        if( Line[1] == 'E' )
-            break;
-        if( Line[1] == 'M' )
-        {
-            /* Parse file line by line */
-            while( GetLine( mdc_file, Line, NULL, sizeof(Line) - 1 ) )
-            {
-                /* $EndMODULE */
-                if( Line[0] == '$' )
-                    break;
-
-                switch( Line[0] )
-                {
-                    /* LibName */
-                    case 'L':       /* LibName */
-                        ModuleName = CONV_FROM_UTF8( StrPurge( Line + 3 ) );
-                        BOOST_FOREACH( FOOTPRINT& footprint, list )
-                        {
-                            if( ModuleName == footprint.m_Module )
-                            {
-                                NewMod = &footprint;
-                                break;
-                            }
-                        }
-                    break;
-
-                    /* KeyWords */
-                    case 'K':
-                        if( NewMod && (!NewMod->m_KeyWord) )
-                        NewMod->m_KeyWord = CONV_FROM_UTF8( StrPurge( Line + 3 ) );
-                    break;
-
-                    /* Doc */
-                    case 'C':
-                        if( NewMod && ( !NewMod->m_Doc ) )
-                        NewMod->m_Doc = CONV_FROM_UTF8( StrPurge( Line + 3 ) );
-                    break;
-                }
-            }
-        } /* Parsed one module documentation */
-    } /* Parsed complete library documentation */
-
-    fclose( mdc_file );
-}
diff --git a/cvpcb/loadcmp.cpp b/cvpcb/loadcmp.cpp
index 39fa7d1dd9..808f4ff06c 100644
--- a/cvpcb/loadcmp.cpp
+++ b/cvpcb/loadcmp.cpp
@@ -13,7 +13,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 #include "class_DisplayFootprintsFrame.h"
 #include "richio.h"
 #include "filter_reader.h"
@@ -36,7 +36,7 @@ MODULE* DISPLAY_FOOTPRINTS_FRAME::Get_Module( const wxString& CmpName )
     wxString   tmp, msg;
     wxFileName fn;
     MODULE*    Module = NULL;
-    WinEDA_CvpcbFrame* parent = ( WinEDA_CvpcbFrame* ) GetParent();
+    CVPCB_MAINFRAME* parent = ( CVPCB_MAINFRAME* ) GetParent();
 
     for( ii = 0; ii < parent->m_ModuleLibNames.GetCount(); ii++ )
     {
diff --git a/cvpcb/menubar.cpp b/cvpcb/menubar.cpp
index 10f056e938..8e3b42a15a 100644
--- a/cvpcb/menubar.cpp
+++ b/cvpcb/menubar.cpp
@@ -9,13 +9,13 @@
 #include "gestfich.h"
 
 #include "cvpcb.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 #include "cvpcb_id.h"
 
 #include "bitmaps.h"
 
 
-void WinEDA_CvpcbFrame::ReCreateMenuBar()
+void CVPCB_MAINFRAME::ReCreateMenuBar()
 {
     wxMenuItem* item;
     wxMenuBar*  menuBar = GetMenuBar();
diff --git a/cvpcb/protos.h b/cvpcb/protos.h
index e1adb4c35b..0eb06831c2 100644
--- a/cvpcb/protos.h
+++ b/cvpcb/protos.h
@@ -10,8 +10,6 @@ extern int GenNetlistPcbnew( FILE* f, COMPONENT_LIST& list,
                              bool rightJustify = false );
 extern bool LoadComponentFile( const wxString& fileName,
                                COMPONENT_LIST& list );
-extern bool LoadFootprintFiles( const wxArrayString& libNames,
-                                FOOTPRINT_LIST& list );
 
 FOOTPRINT* GetModuleDescrByName( const wxString& FootprintName,
                                  FOOTPRINT_LIST& list );
diff --git a/cvpcb/readschematicnetlist.cpp b/cvpcb/readschematicnetlist.cpp
index 23a0dd2caf..b7cefa0381 100644
--- a/cvpcb/readschematicnetlist.cpp
+++ b/cvpcb/readschematicnetlist.cpp
@@ -3,8 +3,6 @@
 /****************************/
 
 /* Read a nelist type Eeschema or OrcadPCB2 and build the component list
- * Manages the lines like :
- * ( XXXXXX VALEUR|(pin1,pin2,...=newalim) ID VALEUR
  */
 
 #include "fctsys.h"
@@ -16,7 +14,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 
 #include "richio.h"
 
@@ -86,7 +84,7 @@ static int ReadFootprintFilterList( FILE_LINE_READER& aNetlistReader, COMPONENT_
  * $endfootprintlist
  * }
  */
-int WinEDA_CvpcbFrame::ReadSchematicNetlist()
+int CVPCB_MAINFRAME::ReadSchematicNetlist()
 {
     char       alim[1024];
     int        idx, jj, k, l;
diff --git a/cvpcb/savecmp.cpp b/cvpcb/savecmp.cpp
index dfb66513e1..8138438d7e 100644
--- a/cvpcb/savecmp.cpp
+++ b/cvpcb/savecmp.cpp
@@ -13,7 +13,7 @@
 
 #include "cvpcb.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 
 #include "build_version.h"
 
@@ -30,7 +30,7 @@ const wxString titleComponentLibErr( _( "Component Library Error" ) );
  * @param NetlistFullFileName - Name of net list file to save.
  * @returns - 1 if OK, 0 if error.
  */
-int WinEDA_CvpcbFrame::SaveComponentList( const wxString& NetlistFullFileName )
+int CVPCB_MAINFRAME::SaveComponentList( const wxString& NetlistFullFileName )
 {
     FILE*       dest;
     wxFileName  fn( NetlistFullFileName );
diff --git a/cvpcb/setvisu.cpp b/cvpcb/setvisu.cpp
index f4da07a70d..7d34f4eaf3 100644
--- a/cvpcb/setvisu.cpp
+++ b/cvpcb/setvisu.cpp
@@ -9,6 +9,7 @@
 #include "bitmaps.h"
 #include "cvpcb.h"
 #include "protos.h"
+#include "cvpcb_mainframe.h"
 #include "cvstruct.h"
 #include "class_DisplayFootprintsFrame.h"
 
@@ -25,7 +26,7 @@
  * Create or Update the frame showing the current highlighted footprint
  * and (if showed) the 3D display frame
  */
-void WinEDA_CvpcbFrame::CreateScreenCmp()
+void CVPCB_MAINFRAME::CreateScreenCmp()
 {
     wxString msg, FootprintName;
     bool     IsNew = FALSE;
diff --git a/cvpcb/tool_cvpcb.cpp b/cvpcb/tool_cvpcb.cpp
index de32cbb684..563113a754 100644
--- a/cvpcb/tool_cvpcb.cpp
+++ b/cvpcb/tool_cvpcb.cpp
@@ -10,11 +10,11 @@
 #include "bitmaps.h"
 #include "cvpcb.h"
 #include "protos.h"
-#include "cvstruct.h"
+#include "cvpcb_mainframe.h"
 #include "cvpcb_id.h"
 
 
-void WinEDA_CvpcbFrame::ReCreateHToolbar()
+void CVPCB_MAINFRAME::ReCreateHToolbar()
 {
     wxConfig* config = wxGetApp().m_EDA_Config;
 
diff --git a/demos/interf_u/interf_u-cache.lib b/demos/interf_u/interf_u-cache.lib
index abe5eef66f..2af0d85799 100644
--- a/demos/interf_u/interf_u-cache.lib
+++ b/demos/interf_u/interf_u-cache.lib
@@ -1,4 +1,4 @@
-EESchema-LIBRARY Version 2.3  Date: 07/12/2010 12:09:24
+EESchema-LIBRARY Version 2.3  Date: 02/02/2011 07:13:37
 #
 # 4003APG120
 #
diff --git a/demos/interf_u/interf_u.brd b/demos/interf_u/interf_u.brd
index 0fc0589fcf..7636b61937 100644
--- a/demos/interf_u/interf_u.brd
+++ b/demos/interf_u/interf_u.brd
@@ -1,6 +1,6 @@
-PCBNEW-BOARD Version 1 date 02/12/2010 19:40:34
+PCBNEW-BOARD Version 1 date 04/02/2011 22:02:30
 
-# Created by Pcbnew(2010-12-01 BZR 2637)-testing
+# Created by Pcbnew(2011-02-03 BZR 2792)-testing
 
 $GENERAL
 LayerCount 2
@@ -20,7 +20,7 @@ $EndGENERAL
 $SHEETDESCR
 Sheet A4 11700 8267
 Title "Demo"
-Date "2 dec 2010"
+Date "4 feb 2011"
 Rev "2.C"
 Comp "Kicad"
 Comment1 ""
@@ -55,10 +55,11 @@ TextPcbSize 600 800
 EdgeModWidth 400
 TextModSize 600 600
 TextModWidth 120
-PadSize 1500 2500
-PadDrill 0
+PadSize 550 550
+PadDrill 354
 Pad2MaskClearance 100
 AuxiliaryAxisOrg 29500 55500
+PcbPlotParams (pcbplotparams (layerselection 3178497) (usegerberextensions true) (excludeedgelayer true) (linewidth 60) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15) (hpglpenoverlay 2) (pscolor true) (psnegative false) (plotreference true) (plotvalue true) (plotothertext true) (plotinvisibletext false) (padsonsilk false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory plot_files))
 $EndSETUP
 
 $EQUIPOT
@@ -4406,18 +4407,18 @@ Po 0 29500 13000 75000 13000 50
 De 28 0 0 0 0
 $EndDRAWSEGMENT
 $TRACK
-Po 0 49000 35000 54500 35000 170 -1
-De 0 0 1 0 400
 Po 0 48500 35500 49000 35000 170 -1
 De 0 0 1 0 800
-Po 0 70000 37800 69250 37050 170 -1
-De 0 0 2 0 800
+Po 0 49000 35000 54500 35000 170 -1
+De 0 0 1 0 400
 Po 0 66500 35000 67250 35000 170 -1
 De 0 0 2 0 800
 Po 0 69250 37000 69250 37050 170 -1
 De 0 0 2 0 0
 Po 0 69250 37000 67250 35000 170 -1
 De 0 0 2 0 0
+Po 0 70000 37800 69250 37050 170 -1
+De 0 0 2 0 800
 Po 0 68500 27500 69550 28550 170 -1
 De 0 0 3 0 0
 Po 0 71000 28550 71000 28620 170 -1
@@ -4428,8 +4429,6 @@ Po 0 66000 27500 68500 27500 170 -1
 De 0 0 3 0 0
 Po 0 65500 28000 66000 27500 170 -1
 De 0 0 3 0 800
-Po 0 66000 28500 69000 28500 170 -1
-De 0 0 4 0 0
 Po 0 69500 29000 70000 29000 170 -1
 De 0 0 4 0 0
 Po 0 69000 28500 69500 29000 170 -1
@@ -4438,10 +4437,12 @@ Po 0 70000 29000 70000 29100 170 -1
 De 0 0 4 0 400
 Po 0 65500 29000 66000 28500 170 -1
 De 0 0 4 0 800
-Po 0 66500 30000 70000 30000 170 -1
-De 0 0 5 0 800
+Po 0 66000 28500 69000 28500 170 -1
+De 0 0 4 0 0
 Po 0 70000 30000 70000 30150 170 -1
 De 0 0 5 0 400
+Po 0 66500 30000 70000 30000 170 -1
+De 0 0 5 0 800
 Po 0 65500 31000 66000 31500 170 -1
 De 0 0 6 0 800
 Po 0 67800 31300 70000 31300 170 -1
@@ -4452,12 +4453,12 @@ Po 0 70000 31300 70000 31250 170 -1
 De 0 0 6 0 400
 Po 0 66000 31500 67600 31500 170 -1
 De 0 0 6 0 0
-Po 0 68950 32000 69250 32300 170 -1
-De 0 0 7 0 0
 Po 0 66500 32000 68950 32000 170 -1
 De 0 0 7 0 800
 Po 0 69250 32300 70000 32350 170 -1
 De 0 0 7 0 400
+Po 0 68950 32000 69250 32300 170 -1
+De 0 0 7 0 0
 Po 0 69350 33400 70000 33400 170 -1
 De 0 0 8 0 0
 Po 0 66500 33000 68950 33000 170 -1
@@ -4466,22 +4467,20 @@ Po 0 70000 33400 70000 33450 170 -1
 De 0 0 8 0 400
 Po 0 68950 33000 69350 33400 170 -1
 De 0 0 8 0 0
-Po 0 66000 33500 68500 33500 170 -1
-De 0 0 9 0 0
 Po 0 69500 34500 70000 34500 170 -1
 De 0 0 9 0 400
 Po 0 68500 33500 69500 34500 170 -1
 De 0 0 9 0 0
 Po 0 65500 33000 66000 33500 170 -1
 De 0 0 9 0 800
+Po 0 66000 33500 68500 33500 170 -1
+De 0 0 9 0 0
 Po 0 66500 34000 68500 34000 170 -1
 De 0 0 10 0 800
 Po 0 68500 34000 70000 35500 170 -1
 De 0 0 10 0 0
 Po 0 70000 35500 70000 35600 170 -1
 De 0 0 10 0 400
-Po 0 69500 33000 69500 36000 170 -1
-De 15 0 11 0 0
 Po 0 69500 36000 70000 36500 170 -1
 De 15 0 11 0 0
 Po 3 68500 32500 68500 32500 450 -1
@@ -4496,6 +4495,8 @@ Po 0 69000 32500 69500 33000 170 -1
 De 15 0 11 0 0
 Po 0 68500 32500 69000 32500 170 -1
 De 15 0 11 0 0
+Po 0 69500 33000 69500 36000 170 -1
+De 15 0 11 0 0
 Po 0 66750 35500 70000 38750 170 -1
 De 0 0 12 0 0
 Po 0 70000 38750 70000 38850 170 -1
@@ -4522,8 +4523,6 @@ Po 0 55000 40625 55000 41000 170 -1
 De 15 0 13 0 400
 Po 0 57000 37500 57000 40000 170 -1
 De 15 0 13 0 0
-Po 0 63500 26000 63500 22500 170 -1
-De 15 0 14 0 800
 Po 0 63500 22500 43000 22500 170 -1
 De 0 0 14 0 0
 Po 3 63500 22500 63500 22500 450 -1
@@ -4532,6 +4531,8 @@ Po 0 42500 23000 42500 23500 170 -1
 De 0 0 14 0 400
 Po 0 43000 22500 42500 23000 170 -1
 De 0 0 14 0 0
+Po 0 63500 26000 63500 22500 170 -1
+De 15 0 14 0 800
 Po 3 60000 39250 60000 39250 450 -1
 De 15 1 15 0 0
 Po 0 50000 39750 50500 39250 170 -1
@@ -4554,8 +4555,6 @@ Po 0 55500 39250 56500 39250 170 -1
 De 0 0 15 0 0
 Po 0 50000 41000 50000 39750 170 -1
 De 0 0 15 0 800
-Po 0 61750 41750 61500 41500 170 -1
-De 15 0 16 0 0
 Po 0 61500 41500 61500 38000 170 -1
 De 15 0 16 0 400
 Po 0 61000 45000 61750 44250 170 -1
@@ -4564,34 +4563,36 @@ Po 0 61750 44250 61750 41750 170 -1
 De 15 0 16 0 0
 Po 0 61000 45500 61000 45000 170 -1
 De 15 0 16 0 800
-Po 0 62500 38000 62500 44500 170 -1
-De 15 0 17 0 800
+Po 0 61750 41750 61500 41500 170 -1
+De 15 0 16 0 0
 Po 0 62500 44500 62000 45000 170 -1
 De 15 0 17 0 0
 Po 0 62000 45000 62000 45500 170 -1
 De 15 0 17 0 400
+Po 0 62500 38000 62500 44500 170 -1
+De 15 0 17 0 800
 Po 0 62500 37000 63000 37500 170 -1
 De 15 0 18 0 800
 Po 0 63000 37500 63000 45500 170 -1
 De 15 0 18 0 400
-Po 0 64000 37500 64000 45500 170 -1
-De 15 0 19 0 400
 Po 0 63500 37000 64000 37500 170 -1
 De 15 0 19 0 800
+Po 0 64000 37500 64000 45500 170 -1
+De 15 0 19 0 400
 Po 0 64500 38000 64500 43750 170 -1
 De 15 0 20 0 800
 Po 0 65000 44250 65000 45500 170 -1
 De 15 0 20 0 400
 Po 0 64500 43750 65000 44250 170 -1
 De 15 0 20 0 0
-Po 0 65000 43500 66000 44500 170 -1
-De 15 0 21 0 0
 Po 0 66000 44500 66000 45500 170 -1
 De 15 0 21 0 400
 Po 0 65000 37500 65000 43500 170 -1
 De 15 0 21 0 0
 Po 0 64500 37000 65000 37500 170 -1
 De 15 0 21 0 800
+Po 0 65000 43500 66000 44500 170 -1
+De 15 0 21 0 0
 Po 0 66000 36500 66000 43750 170 -1
 De 15 0 22 0 0
 Po 0 66000 43750 67000 44750 170 -1
@@ -4648,14 +4649,14 @@ Po 0 49000 42000 59000 42000 170 -1
 De 0 0 25 0 0
 Po 3 49000 42000 49000 42000 450 -1
 De 15 1 25 0 0
-Po 0 68900 29000 69550 29650 170 -1
-De 0 0 26 0 0
 Po 0 66500 29000 68900 29000 170 -1
 De 0 0 26 0 800
 Po 0 69550 29650 71000 29650 170 -1
 De 0 0 26 0 0
 Po 0 71000 29620 71000 29650 170 -1
 De 0 0 26 0 800
+Po 0 68900 29000 69550 29650 170 -1
+De 0 0 26 0 0
 Po 0 66000 30500 69400 30500 170 -1
 De 0 0 27 0 0
 Po 0 69600 30700 71000 30700 170 -1
@@ -4682,10 +4683,10 @@ Po 0 57000 31500 57000 25500 170 -1
 De 15 0 28 0 0
 Po 0 55000 31500 57000 31500 170 -1
 De 15 0 28 0 0
-Po 0 66500 31000 67500 30000 170 -1
-De 15 0 29 0 800
 Po 0 67500 30000 67500 16000 170 -1
 De 15 0 29 0 400
+Po 0 66500 31000 67500 30000 170 -1
+De 15 0 29 0 800
 Po 3 43000 22000 43000 22000 450 -1
 De 15 1 30 0 0
 Po 3 64500 22000 64500 22000 450 -1
@@ -4700,8 +4701,6 @@ Po 0 64500 26000 64500 22000 170 -1
 De 15 0 30 0 800
 Po 0 64500 22000 43000 22000 170 -1
 De 0 0 30 0 0
-Po 0 42500 29000 42000 28500 170 -1
-De 15 0 31 0 0
 Po 0 55500 27000 55000 26500 170 -1
 De 0 0 31 0 800
 Po 0 42000 28500 42000 26500 170 -1
@@ -4712,6 +4711,8 @@ Po 0 55000 26500 42000 26500 170 -1
 De 0 0 31 0 0
 Po 0 42500 29500 42500 29000 170 -1
 De 15 0 31 0 800
+Po 0 42500 29000 42000 28500 170 -1
+De 15 0 31 0 0
 Po 0 63000 27500 64000 27500 170 -1
 De 15 0 32 0 0
 Po 3 64000 25000 64000 25000 450 -1
@@ -4744,14 +4745,14 @@ Po 0 55500 29000 55000 28500 170 -1
 De 15 0 33 0 800
 Po 0 40000 27000 39500 26500 170 -1
 De 0 0 33 0 0
-Po 0 35500 29500 35500 29500 170 -1
-De 0 0 34 0 C00
 Po 0 56000 31500 37500 31500 170 -1
 De 0 0 34 0 0
 Po 0 37500 31500 35500 29500 170 -1
 De 0 0 34 0 400
 Po 0 56500 31000 56000 31500 170 -1
 De 0 0 34 0 800
+Po 0 35500 29500 35500 29500 170 -1
+De 0 0 34 0 C00
 Po 0 36500 27000 36500 26500 170 -1
 De 0 0 35 0 0
 Po 0 37500 28000 36500 27000 170 -1
@@ -4766,8 +4767,6 @@ Po 0 35000 29000 34500 29500 170 -1
 De 0 0 36 0 400
 Po 0 54500 29000 35000 29000 170 -1
 De 0 0 36 0 800
-Po 3 52500 25500 52500 25500 600 300
-De 15 1 37 0 0
 Po 0 33750 25500 33500 25250 170 -1
 De 0 0 37 0 0
 Po 0 53500 31000 54500 31000 170 -1
@@ -4780,6 +4779,8 @@ Po 0 52500 25500 33750 25500 170 -1
 De 0 0 37 0 0
 Po 0 33500 23500 33500 25250 170 -1
 De 0 0 37 0 800
+Po 3 52500 25500 52500 25500 600 300
+De 15 1 37 0 0
 Po 3 62000 18500 62000 18500 450 -1
 De 15 1 38 0 0
 Po 0 62000 18500 62000 27500 170 -1
@@ -4796,8 +4797,6 @@ Po 0 62000 27500 61500 28000 170 -1
 De 15 0 38 0 400
 Po 0 33000 28500 33500 29000 170 -1
 De 15 0 38 0 0
-Po 0 51000 29500 50500 30000 170 -1
-De 0 0 39 0 0
 Po 0 56000 29500 51000 29500 170 -1
 De 0 0 39 0 0
 Po 0 42000 30000 41500 29500 170 -1
@@ -4806,6 +4805,8 @@ Po 0 56500 29000 56000 29500 170 -1
 De 0 0 39 0 800
 Po 0 50500 30000 42000 30000 170 -1
 De 0 0 39 0 0
+Po 0 51000 29500 50500 30000 170 -1
+De 0 0 39 0 0
 Po 3 40000 28500 40000 28500 450 -1
 De 15 1 40 0 0
 Po 0 40500 29500 40500 29000 170 -1
@@ -4824,8 +4825,6 @@ Po 0 51500 30000 51000 30500 170 -1
 De 0 0 41 0 0
 Po 0 51000 30500 40500 30500 170 -1
 De 0 0 41 0 0
-Po 3 67000 24500 67000 24500 450 -1
-De 15 1 42 0 0
 Po 0 38500 29500 38500 29000 170 -1
 De 15 0 42 0 800
 Po 0 38000 24500 67000 24500 170 -1
@@ -4840,6 +4839,8 @@ Po 0 67000 24500 67000 27500 170 -1
 De 15 0 42 0 0
 Po 3 38000 24500 38000 24500 450 -1
 De 15 1 42 0 0
+Po 3 67000 24500 67000 24500 450 -1
+De 15 1 42 0 0
 Po 0 55000 30500 52000 30500 170 -1
 De 0 0 43 0 0
 Po 0 52000 30500 51500 31000 170 -1
@@ -4852,8 +4853,6 @@ Po 0 37500 30000 37500 29500 170 -1
 De 0 0 43 0 400
 Po 0 55500 31000 55000 30500 170 -1
 De 0 0 43 0 800
-Po 0 56000 26500 56000 20500 170 -1
-De 15 0 44 0 0
 Po 3 56000 20500 56000 20500 450 -1
 De 15 1 44 0 0
 Po 3 36000 20500 36000 20500 450 -1
@@ -4868,6 +4867,8 @@ Po 0 36000 20500 36000 28500 170 -1
 De 15 0 44 0 0
 Po 0 56000 20500 36000 20500 170 -1
 De 0 0 44 0 0
+Po 0 56000 26500 56000 20500 170 -1
+De 15 0 44 0 0
 Po 0 54500 32000 38000 32000 170 -1
 De 0 0 45 0 800
 Po 0 37500 28500 37500 23500 170 -1
@@ -4878,14 +4879,14 @@ Po 3 38000 32000 38000 32000 450 -1
 De 15 1 45 0 0
 Po 0 38000 32000 38000 29000 170 -1
 De 15 0 45 0 0
-Po 0 57500 26000 57500 24000 170 -1
-De 15 0 46 0 800
 Po 0 39000 24000 38500 23500 170 -1
 De 0 0 46 0 400
 Po 0 57500 24000 39000 24000 170 -1
 De 0 0 46 0 0
 Po 3 57500 24000 57500 24000 450 -1
 De 15 1 46 0 0
+Po 0 57500 26000 57500 24000 170 -1
+De 15 0 46 0 800
 Po 0 37500 45000 47750 45000 170 -1
 De 0 0 47 0 0
 Po 0 48000 44750 48000 44000 170 -1
@@ -4894,8 +4895,6 @@ Po 0 47750 45000 48000 44750 170 -1
 De 0 0 47 0 0
 Po 0 37000 45500 37500 45000 170 -1
 De 0 0 47 0 800
-Po 0 59500 28000 59000 27500 170 -1
-De 0 0 48 0 800
 Po 0 44500 29500 44500 29000 170 -1
 De 15 0 48 0 800
 Po 0 44500 29000 44000 28500 170 -1
@@ -4906,6 +4905,8 @@ Po 0 59000 27500 44000 27500 170 -1
 De 0 0 48 0 0
 Po 0 44000 28500 44000 27500 170 -1
 De 15 0 48 0 0
+Po 0 59500 28000 59000 27500 170 -1
+De 0 0 48 0 800
 Po 0 53000 26000 45000 26000 170 -1
 De 0 0 49 0 0
 Po 0 53500 25500 53000 26000 170 -1
@@ -4940,14 +4941,12 @@ Po 0 46000 21000 58000 21000 170 -1
 De 0 0 50 0 0
 Po 3 46000 21000 46000 21000 450 -1
 De 15 1 50 0 0
-Po 0 59500 26000 59500 23500 170 -1
-De 15 0 51 0 800
 Po 0 59500 23500 47500 23500 170 -1
 De 0 0 51 0 400
 Po 3 59500 23500 59500 23500 450 -1
 De 15 1 51 0 0
-Po 0 60500 26000 60500 17500 170 -1
-De 15 0 52 0 800
+Po 0 59500 26000 59500 23500 170 -1
+De 15 0 51 0 800
 Po 0 60500 17500 46500 17500 170 -1
 De 0 0 52 0 0
 Po 3 60500 17500 60500 17500 450 -1
@@ -4956,6 +4955,8 @@ Po 3 46500 17500 46500 17500 450 -1
 De 15 1 52 0 0
 Po 0 46500 23500 46500 17500 170 -1
 De 15 0 52 0 800
+Po 0 60500 26000 60500 17500 170 -1
+De 15 0 52 0 800
 Po 0 45500 23500 45500 19000 170 -1
 De 15 0 53 0 800
 Po 3 61500 19000 61500 19000 450 -1
@@ -4966,8 +4967,6 @@ Po 0 45500 19000 61500 19000 170 -1
 De 0 0 53 0 0
 Po 0 61500 26000 61500 19000 170 -1
 De 15 0 53 0 800
-Po 3 44500 21500 44500 21500 450 -1
-De 15 1 54 0 0
 Po 0 44500 23500 44500 21500 170 -1
 De 15 0 54 0 800
 Po 0 44500 21500 62500 21500 170 -1
@@ -4976,6 +4975,8 @@ Po 3 62500 21500 62500 21500 450 -1
 De 15 1 54 0 0
 Po 0 62500 26000 62500 21500 170 -1
 De 15 0 54 0 800
+Po 3 44500 21500 44500 21500 450 -1
+De 15 1 54 0 0
 Po 0 61500 27000 61000 26500 170 -1
 De 15 0 55 0 800
 Po 0 44000 23000 43500 23500 170 -1
@@ -4986,8 +4987,6 @@ Po 3 61000 23000 61000 23000 450 -1
 De 15 1 55 0 0
 Po 0 61000 26500 61000 23000 170 -1
 De 15 0 55 0 0
-Po 0 63000 26500 63000 18000 170 -1
-De 15 0 56 0 0
 Po 0 62500 27000 63000 26500 170 -1
 De 15 0 56 0 800
 Po 0 63000 18000 40500 18000 170 -1
@@ -4998,6 +4997,8 @@ Po 3 40500 18000 40500 18000 450 -1
 De 15 1 56 0 0
 Po 0 40500 18000 40500 23500 170 -1
 De 15 0 56 0 400
+Po 0 63000 26500 63000 18000 170 -1
+De 15 0 56 0 0
 Po 0 49500 48000 49000 48500 170 -1
 De 0 0 57 0 400
 Po 0 59000 37500 59000 41000 170 -1
@@ -5086,14 +5087,14 @@ Po 3 45000 37000 45000 37000 450 -1
 De 15 1 59 0 0
 Po 0 56000 36250 55750 36500 170 -1
 De 0 0 59 0 0
-Po 3 46000 49000 46000 49000 450 -1
-De 15 1 60 0 0
 Po 0 43500 49000 43000 48500 170 -1
 De 0 0 60 0 400
 Po 0 46000 49000 43500 49000 170 -1
 De 0 0 60 0 0
 Po 0 46000 54000 46000 49000 170 -1
 De 15 0 60 0 800
+Po 3 46000 49000 46000 49000 450 -1
+De 15 1 60 0 0
 Po 0 42000 47500 37500 47500 170 -1
 De 0 0 61 0 0
 Po 0 37000 52500 37000 54000 170 -1
@@ -5324,50 +5325,48 @@ Po 0 55000 50000 62500 50000 170 -1
 De 0 0 69 0 0
 Po 0 62500 47500 63500 46500 170 -1
 De 15 0 69 0 0
-Po 0 57000 54000 57000 51500 170 -1
-De 15 0 70 0 800
 Po 0 57000 51500 59000 49500 170 -1
 De 15 0 70 0 0
 Po 0 59000 49500 59000 48500 170 -1
 De 15 0 70 0 400
+Po 0 57000 54000 57000 51500 170 -1
+De 15 0 70 0 800
 Po 0 60000 49500 60000 48500 170 -1
 De 15 0 71 0 400
 Po 0 58000 51500 60000 49500 170 -1
 De 15 0 71 0 0
 Po 0 58000 54000 58000 51500 170 -1
 De 15 0 71 0 800
-Po 0 59000 52500 61000 50500 170 -1
-De 15 0 72 0 0
 Po 0 61000 50500 61000 48500 170 -1
 De 15 0 72 0 400
 Po 0 59000 54000 59000 52500 170 -1
 De 15 0 72 0 800
+Po 0 59000 52500 61000 50500 170 -1
+De 15 0 72 0 0
 Po 0 60000 54000 60000 52500 170 -1
 De 15 0 73 0 800
 Po 0 60000 52500 62000 50500 170 -1
 De 15 0 73 0 0
 Po 0 62000 50500 62000 48500 170 -1
 De 15 0 73 0 400
-Po 0 61000 52250 63000 50250 170 -1
-De 15 0 74 0 0
 Po 0 63000 50250 63000 48500 170 -1
 De 15 0 74 0 400
 Po 0 61000 54000 61000 52250 170 -1
 De 15 0 74 0 800
+Po 0 61000 52250 63000 50250 170 -1
+De 15 0 74 0 0
 Po 0 62000 52000 64000 50000 170 -1
 De 15 0 75 0 0
 Po 0 64000 50000 64000 48500 170 -1
 De 15 0 75 0 400
 Po 0 62000 54000 62000 52000 170 -1
 De 15 0 75 0 800
-Po 0 65000 49500 63000 51500 170 -1
-De 15 0 76 0 0
 Po 0 63000 51500 63000 54000 170 -1
 De 15 0 76 0 400
 Po 0 65000 48500 65000 49500 170 -1
 De 15 0 76 0 800
-Po 0 64000 52500 64500 52000 170 -1
-De 15 0 77 0 0
+Po 0 65000 49500 63000 51500 170 -1
+De 15 0 76 0 0
 Po 0 64000 54000 64000 52500 170 -1
 De 15 0 77 0 800
 Po 0 65500 52000 66000 51500 170 -1
@@ -5376,6 +5375,8 @@ Po 0 64500 52000 65500 52000 170 -1
 De 15 0 77 0 0
 Po 0 66000 51500 66000 48500 170 -1
 De 15 0 77 0 400
+Po 0 64000 52500 64500 52000 170 -1
+De 15 0 77 0 0
 Po 0 52000 52000 53000 51000 170 -1
 De 15 0 78 0 0
 Po 0 52000 54000 52000 52000 170 -1
@@ -5384,8 +5385,6 @@ Po 3 52000 52000 52000 52000 450 -1
 De 15 1 78 0 0
 Po 0 53000 51000 53000 48500 170 -1
 De 15 0 78 0 400
-Po 0 53500 48000 52500 48000 170 -1
-De 15 0 79 0 0
 Po 3 53000 52000 53000 52000 450 -1
 De 15 1 79 0 0
 Po 0 52500 48000 52000 48500 170 -1
@@ -5396,6 +5395,8 @@ Po 0 53000 52000 53500 51500 170 -1
 De 15 0 79 0 0
 Po 0 53500 51500 53500 48000 170 -1
 De 15 0 79 0 0
+Po 0 53500 48000 52500 48000 170 -1
+De 15 0 79 0 0
 Po 0 57000 41000 57500 40500 170 -1
 De 0 0 80 0 800
 Po 3 62000 41000 62000 41000 450 -1
@@ -5446,12 +5447,12 @@ Po 0 59500 44500 59500 38000 170 -1
 De 15 0 82 0 400
 Po 0 53000 45500 53000 44000 170 -1
 De 15 0 82 0 C00
-Po 0 66500 36000 69000 38500 170 -1
-De 0 0 83 0 800
 Po 0 69000 38500 69000 39000 170 -1
 De 0 0 83 0 0
 Po 0 69000 39000 70000 39950 170 -1
 De 0 0 83 0 400
+Po 0 66500 36000 69000 38500 170 -1
+De 0 0 83 0 800
 Po 0 52250 40250 57250 40250 170 -1
 De 0 0 84 0 0
 Po 0 65875 40250 66000 40125 170 -1
@@ -5474,10 +5475,10 @@ Po 0 57500 40000 58750 40000 170 -1
 De 0 0 84 0 0
 Po 0 66000 40125 66000 37125 170 -1
 De 0 0 84 0 0
-Po 0 44000 44000 44000 42000 170 -1
-De 15 0 85 0 C00
 Po 0 44000 45500 44000 44000 170 -1
 De 15 0 85 0 C00
+Po 0 44000 44000 44000 42000 170 -1
+De 15 0 85 0 C00
 Po 0 44000 47000 44000 48500 170 -1
 De 15 0 86 0 400
 Po 0 43500 44500 43500 46500 170 -1
@@ -5488,10 +5489,10 @@ Po 0 43000 44000 43500 44500 170 -1
 De 15 0 86 0 800
 Po 0 43000 44000 43000 42000 170 -1
 De 15 0 86 0 C00
-Po 0 38000 42000 38000 44000 170 -1
-De 15 0 87 0 C00
 Po 0 38000 44000 38000 45500 170 -1
 De 15 0 87 0 C00
+Po 0 38000 42000 38000 44000 170 -1
+De 15 0 87 0 C00
 Po 0 37000 44000 37500 44500 170 -1
 De 15 0 88 0 800
 Po 0 38000 47000 38000 48500 170 -1
@@ -5502,16 +5503,14 @@ Po 0 37500 46500 38000 47000 170 -1
 De 15 0 88 0 0
 Po 0 37000 44000 37000 42000 170 -1
 De 15 0 88 0 C00
-Po 0 40000 45500 40000 44000 170 -1
-De 15 0 89 0 C00
 Po 0 40000 44000 40000 42000 170 -1
 De 15 0 89 0 C00
+Po 0 40000 45500 40000 44000 170 -1
+De 15 0 89 0 C00
 Po 0 42000 45500 42000 44000 170 -1
 De 15 0 90 0 C00
 Po 0 42000 44000 42000 42000 170 -1
 De 15 0 90 0 C00
-Po 0 40000 47000 40000 48500 170 -1
-De 15 0 91 0 400
 Po 0 39000 44000 39000 42000 170 -1
 De 15 0 91 0 C00
 Po 0 39000 44000 39500 44500 170 -1
@@ -5520,6 +5519,8 @@ Po 0 39500 46500 40000 47000 170 -1
 De 15 0 91 0 0
 Po 0 39500 44500 39500 46500 170 -1
 De 15 0 91 0 0
+Po 0 40000 47000 40000 48500 170 -1
+De 15 0 91 0 400
 Po 0 41000 44000 41000 42000 170 -1
 De 15 0 92 0 C00
 Po 0 42000 47000 42000 48500 170 -1
@@ -5538,8 +5539,6 @@ Po 0 57000 44500 56500 45000 170 -1
 De 15 0 93 0 0
 Po 0 57000 44000 57000 44500 170 -1
 De 15 0 93 0 800
-Po 0 53125 36500 55375 36500 170 -1
-De 15 0 94 0 0
 Po 0 53000 41000 53000 36625 170 -1
 De 15 0 94 0 800
 Po 0 55500 36375 55500 36000 170 -1
@@ -5548,12 +5547,14 @@ Po 0 55375 36500 55500 36375 170 -1
 De 15 0 94 0 0
 Po 0 53000 36625 53125 36500 170 -1
 De 15 0 94 0 0
-Po 0 66500 38000 67000 38000 170 -1
-De 0 0 95 0 800
+Po 0 53125 36500 55375 36500 170 -1
+De 15 0 94 0 0
 Po 0 67000 38000 70000 41000 170 -1
 De 0 0 95 0 0
 Po 0 70000 41000 70000 41050 170 -1
 De 0 0 95 0 400
+Po 0 66500 38000 67000 38000 170 -1
+De 0 0 95 0 800
 Po 0 68500 29500 68500 31500 170 -1
 De 15 0 96 0 0
 Po 0 65000 29750 65250 29500 170 -1
@@ -5592,8 +5593,6 @@ Po 0 66500 17500 62000 17500 170 -1
 De 0 0 98 0 0
 Po 0 61500 17000 35500 17000 170 -1
 De 0 0 98 0 0
-Po 0 56125 41500 57875 41500 170 -1
-De 0 0 99 0 0
 Po 0 57875 41500 58000 41375 170 -1
 De 0 0 99 0 0
 Po 0 56000 41375 56125 41500 170 -1
@@ -5602,6 +5601,8 @@ Po 0 58000 41375 58000 41000 170 -1
 De 0 0 99 0 400
 Po 0 56000 41000 56000 41375 170 -1
 De 0 0 99 0 800
+Po 0 56125 41500 57875 41500 170 -1
+De 0 0 99 0 0
 Po 0 42500 34500 42000 34500 220 -1
 De 0 0 100 0 0
 Po 0 37000 36000 37000 34500 220 -1
@@ -5798,10 +5799,10 @@ Po 0 34500 22000 34500 23500 170 -1
 De 0 0 101 0 C00
 Po 0 64500 16000 64500 14500 170 -1
 De 15 0 102 0 C00
-Po 0 60500 15000 60500 14500 170 -1
-De 15 0 103 0 400
 Po 0 59500 16000 60500 15000 170 -1
 De 15 0 103 0 800
+Po 0 60500 15000 60500 14500 170 -1
+De 15 0 103 0 400
 Po 0 49000 45500 49000 44000 170 -1
 De 15 0 104 0 C00
 Po 0 50000 45500 50000 44000 170 -1
@@ -5824,8 +5825,6 @@ Po 0 46000 35500 44500 35500 170 -1
 De 0 0 108 0 C00
 Po 0 46750 36250 50750 36250 170 -1
 De 0 0 108 0 0
-Po 0 44500 38500 43500 38500 170 -1
-De 0 0 109 0 800
 Po 0 46000 38500 44500 38500 170 -1
 De 0 0 109 0 C00
 Po 0 48000 38000 48500 38500 170 -1
@@ -5836,6 +5835,8 @@ Po 0 46500 38000 48000 38000 170 -1
 De 0 0 109 0 0
 Po 0 46000 38500 46500 38000 170 -1
 De 0 0 109 0 800
+Po 0 44500 38500 43500 38500 170 -1
+De 0 0 109 0 800
 Po 0 64500 29000 65000 29500 250 -1
 De 15 0 110 0 800
 Po 0 48500 42500 48000 42000 250 -1
diff --git a/demos/interf_u/interf_u.cmp b/demos/interf_u/interf_u.cmp
index 4dd66d05a8..acf33cf223 100644
--- a/demos/interf_u/interf_u.cmp
+++ b/demos/interf_u/interf_u.cmp
@@ -1,171 +1,3 @@
-Cmp-Mod V01 Genere par PcbNew le 17/01/2011 13:55:19
-
-BeginCmp
-TimeStamp = /322D3011;
-Reference = BUS1;
-ValeurCmp = BUSPC;
-IdModule  = BUS_PC;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307DE2;
-Reference = C1;
-ValeurCmp = 47uF;
-IdModule  = CP6;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307ECF;
-Reference = C2;
-ValeurCmp = 47pF;
-IdModule  = C1;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307ED4;
-Reference = C3;
-ValeurCmp = 47pF;
-IdModule  = C1;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307DCF;
-Reference = C4;
-ValeurCmp = 47uF;
-IdModule  = CP6;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307DCA;
-Reference = C5;
-ValeurCmp = 47uF;
-IdModule  = CP6;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307DC0;
-Reference = C6;
-ValeurCmp = 47uF;
-IdModule  = CP6;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D32AC;
-Reference = D1;
-ValeurCmp = LED;
-IdModule  = LEDV;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D32BE;
-Reference = D2;
-ValeurCmp = LED;
-IdModule  = LEDV;
-EndCmp
-
-BeginCmp
-TimeStamp = /32568D1E;
-Reference = JP1;
-ValeurCmp = CONN_8X2;
-IdModule  = pin_array_8x2;
-EndCmp
-
-BeginCmp
-TimeStamp = /3256759C;
-Reference = P1;
-ValeurCmp = DB25FEMELLE;
-IdModule  = DB25FC;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307EA1;
-Reference = R1;
-ValeurCmp = 100K;
-IdModule  = R3;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307EAA;
-Reference = R2;
-ValeurCmp = 1K;
-IdModule  = R3;
-EndCmp
-
-BeginCmp
-TimeStamp = /324002E6;
-Reference = R3;
-ValeurCmp = 10K;
-IdModule  = R3;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D3295;
-Reference = R4;
-ValeurCmp = 330;
-IdModule  = R3;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D32A0;
-Reference = R5;
-ValeurCmp = 330;
-IdModule  = R3;
-EndCmp
-
-BeginCmp
-TimeStamp = /325679C1;
-Reference = RR1;
-ValeurCmp = 9x1K;
-IdModule  = r_pack9;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D31F4;
-Reference = U1;
-ValeurCmp = 74LS245;
-IdModule  = 20dip300;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D35B4;
-Reference = U2;
-ValeurCmp = 74LS688;
-IdModule  = 20dip300;
-EndCmp
-
-BeginCmp
-TimeStamp = /4A087146;
-Reference = U3;
-ValeurCmp = 74LS541;
-IdModule  = 20dip300;
-EndCmp
-
-BeginCmp
-TimeStamp = /3240023F;
-Reference = U5;
-ValeurCmp = 628128;
-IdModule  = DIP-32__600;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D321C;
-Reference = U8;
-ValeurCmp = EP600;
-IdModule  = 24dip300;
-EndCmp
-
-BeginCmp
-TimeStamp = /322D32FA;
-Reference = U9;
-ValeurCmp = 4003APG120;
-IdModule  = PGA120;
-EndCmp
-
-BeginCmp
-TimeStamp = /32307EC0;
-Reference = X1;
-ValeurCmp = 8MHz;
-IdModule  = HC-18UH;
-EndCmp
+Cmp-Mod V01 Created by CvPCB (2011-02-04 BZR 2793)-testing date = 05/02/2011 15:42:18
 
 EndListe
diff --git a/demos/interf_u/interf_u.net b/demos/interf_u/interf_u.net
index 3c9ba55930..989b597446 100644
--- a/demos/interf_u/interf_u.net
+++ b/demos/interf_u/interf_u.net
@@ -1,442 +1,466 @@
-# EESchema Netlist Version 1.1 created  13/01/2011 13:12:57
+# EESchema Netlist Version 1.1 created  05/02/2011 16:51:44
 (
- ( /322D3011 BUS_PC BUS1 BUSPC
-  ( 1 GND )
-  ( 2 /PC-RST )
-  ( 3 VCC )
-  ( 4 ? )
-  ( 5 ? )
-  ( 6 ? )
-  ( 7 ? )
-  ( 8 ? )
-  ( 9 ? )
-  ( 10 ? )
-  ( 11 ? )
-  ( 12 ? )
-  ( 13 /PC-IOW )
-  ( 14 /PC-IOR )
-  ( 15 ? )
-  ( 16 ? )
-  ( 17 ? )
-  ( 18 ? )
-  ( 19 ? )
-  ( 20 ? )
-  ( 21 ? )
-  ( 22 ? )
-  ( 23 ? )
-  ( 24 ? )
-  ( 25 ? )
-  ( 26 ? )
-  ( 27 ? )
-  ( 28 ? )
-  ( 29 VCC )
-  ( 30 ? )
-  ( 31 GND )
-  ( 32 ? )
-  ( 33 /PC-DB7 )
-  ( 34 /PC-DB6 )
-  ( 35 /PC-DB5 )
-  ( 36 /PC-DB4 )
-  ( 37 /PC-DB3 )
-  ( 38 /PC-DB2 )
-  ( 39 /PC-DB1 )
-  ( 40 /PC-DB0 )
-  ( 41 ? )
-  ( 42 /PC-AEN )
-  ( 43 ? )
-  ( 44 ? )
-  ( 45 ? )
-  ( 46 ? )
-  ( 47 ? )
-  ( 48 ? )
-  ( 49 ? )
-  ( 50 ? )
-  ( 51 /PC-A11 )
-  ( 52 /PC-A10 )
-  ( 53 /PC-A9 )
-  ( 54 /PC-A8 )
-  ( 55 /PC-A7 )
-  ( 56 /PC-A6 )
-  ( 57 /PC-A5 )
-  ( 58 /PC-A4 )
-  ( 59 /PC-A3 )
-  ( 60 /PC-A2 )
-  ( 61 /PC-A1 )
-  ( 62 /PC-A0 )
+ ( /4A087146 $noname  U3 74LS541 {Lib=74LS541}
+  (    1 GND )
+  (    2 /PC-A1 )
+  (    3 /PC-A0 )
+  (    4 /PC-A2 )
+  (    5 /PC-A3 )
+  (    6 /PC-IOW )
+  (    7 /PC-IOR )
+  (    8 /PC-RST )
+  (    9 /PC-RST )
+  (   10 GND )
+  (   11 ? )
+  (   12 /RSTL )
+  (   13 /PC-RD )
+  (   14 /PC-WR )
+  (   15 N-000109 )
+  (   16 N-000108 )
+  (   17 N-000107 )
+  (   18 N-000106 )
+  (   19 GND )
+  (   20 VCC )
  )
- ( /32307DE2 CP6 C1 47uF
-  ( 1 VCC )
-  ( 2 GND )
+ ( /32568D1E pin_array_8x2  JP1 CONN_8X2 {Lib=CONN_8X2}
+  (    1 GND )
+  (    2 /REF10 )
+  (    3 GND )
+  (    4 /REF11 )
+  (    5 GND )
+  (    6 /REF7 )
+  (    7 GND )
+  (    8 /REF9 )
+  (    9 GND )
+  (   10 /REF6 )
+  (   11 GND )
+  (   12 /REF8 )
+  (   13 GND )
+  (   14 /REF4 )
+  (   15 GND )
+  (   16 /REF5 )
  )
- ( /32307ECF C1 C2 47pF
-  ( 1 N-000145 )
-  ( 2 GND )
+ ( /325679C1 r_pack9  RR1 9x1K {Lib=RR9}
+  (    1 VCC )
+  (    2 /REF5 )
+  (    3 /REF4 )
+  (    4 /REF8 )
+  (    5 /REF6 )
+  (    6 /REF9 )
+  (    7 /REF7 )
+  (    8 /REF11 )
+  (    9 /REF10 )
+  (   10 ? )
  )
- ( /32307ED4 C1 C3 47pF
-  ( 1 N-000146 )
-  ( 2 GND )
+ ( /3256759C DB25FC  P1 DB25FEMELLE {Lib=DB25}
+  (    1 /STROBE )
+  (    2 /BIT0 )
+  (    3 /BIT1 )
+  (    4 /BIT2 )
+  (    5 /BIT3 )
+  (    6 /BIT4 )
+  (    7 /BIT5 )
+  (    8 /BIT6 )
+  (    9 /BIT7 )
+  (   10 /ACK )
+  (   11 /BUST+ )
+  (   12 /PE+ )
+  (   13 /SLCT+ )
+  (   14 /AUTOFD- )
+  (   15 /ERROR- )
+  (   16 /INIT- )
+  (   17 /SLCTIN- )
+  (   18 GND )
+  (   19 GND )
+  (   20 GND )
+  (   21 GND )
+  (   22 GND )
+  (   23 GND )
+  (   24 GND )
+  (   25 GND )
  )
- ( /32307DCF CP6 C4 47uF
-  ( 1 VCC )
-  ( 2 GND )
+ ( /324002E6 R3  R3 10K {Lib=R}
+  (    1 N-000071 )
+  (    2 VCC )
  )
- ( /32307DCA CP6 C5 47uF
-  ( 1 VCC )
-  ( 2 GND )
+ ( /3240023F 32dip600  U5 628128 {Lib=628128}
+  (    2 /MA16 )
+  (    3 /MA14 )
+  (    4 /MA12 )
+  (    5 /MA7 )
+  (    6 /MA6 )
+  (    7 /MA5 )
+  (    8 /MA4 )
+  (    9 /MA3 )
+  (   10 /MA2 )
+  (   11 /MA1 )
+  (   12 /MA0 )
+  (   13 /MD0 )
+  (   14 /MD1 )
+  (   15 /MD2 )
+  (   16 GND )
+  (   17 /MD3 )
+  (   18 /MD4 )
+  (   19 /MD5 )
+  (   20 /MD6 )
+  (   21 /MD7 )
+  (   22 /CS1- )
+  (   23 /MA10 )
+  (   24 /OE- )
+  (   25 /MA11 )
+  (   26 /MA9 )
+  (   27 /MA8 )
+  (   28 /MA13 )
+  (   29 /WR- )
+  (   30 N-000071 )
+  (   31 /MA15 )
+  (   32 VCC )
  )
- ( /32307DC0 CP6 C6 47uF
-  ( 1 VCC )
-  ( 2 GND )
+ ( /32307ED4 C1  C3 47pF {Lib=C}
+  (    1 N-000146 )
+  (    2 GND )
  )
- ( /322D32AC LEDV D1 LED
-  ( 1 N-000105 )
-  ( 2 GND )
+ ( /32307ECF C1  C2 47pF {Lib=C}
+  (    1 N-000145 )
+  (    2 GND )
  )
- ( /322D32BE LEDV D2 LED
-  ( 1 N-000104 )
-  ( 2 GND )
+ ( /32307EC0 HC-18UH  X1 8MHz {Lib=CRYSTAL}
+  (    1 N-000145 )
+  (    2 N-000146 )
  )
- ( /32568D1E pin_array_8x2 JP1 CONN_8X2
-  ( 1 GND )
-  ( 2 /REF10 )
-  ( 3 GND )
-  ( 4 /REF11 )
-  ( 5 GND )
-  ( 6 /REF7 )
-  ( 7 GND )
-  ( 8 /REF9 )
-  ( 9 GND )
-  ( 10 /REF6 )
-  ( 11 GND )
-  ( 12 /REF8 )
-  ( 13 GND )
-  ( 14 /REF4 )
-  ( 15 GND )
-  ( 16 /REF5 )
+ ( /32307EAA R3  R2 1K {Lib=R}
+  (    1 /8MH-OUT )
+  (    2 N-000146 )
  )
- ( /3256759C DB25FC P1 DB25FEMELLE
-  ( 1 /STROBE )
-  ( 2 /BIT0 )
-  ( 3 /BIT1 )
-  ( 4 /BIT2 )
-  ( 5 /BIT3 )
-  ( 6 /BIT4 )
-  ( 7 /BIT5 )
-  ( 8 /BIT6 )
-  ( 9 /BIT7 )
-  ( 10 /ACK )
-  ( 11 /BUST+ )
-  ( 12 /PE+ )
-  ( 13 /SLCT+ )
-  ( 14 /AUTOFD- )
-  ( 15 /ERROR- )
-  ( 16 /INIT- )
-  ( 17 /SLCTIN- )
-  ( 18 GND )
-  ( 19 GND )
-  ( 20 GND )
-  ( 21 GND )
-  ( 22 GND )
-  ( 23 GND )
-  ( 24 GND )
-  ( 25 GND )
+ ( /32307EA1 R3  R1 100K {Lib=R}
+  (    1 N-000146 )
+  (    2 N-000145 )
  )
- ( /32307EA1 R3 R1 100K
-  ( 1 N-000146 )
-  ( 2 N-000145 )
+ ( /32307DE2 CP6  C1 47uF {Lib=CP}
+  (    1 VCC )
+  (    2 GND )
  )
- ( /32307EAA R3 R2 1K
-  ( 1 /8MH-OUT )
-  ( 2 N-000146 )
+ ( /32307DCF CP6  C4 47uF {Lib=CP}
+  (    1 VCC )
+  (    2 GND )
  )
- ( /324002E6 R3 R3 10K
-  ( 1 N-000071 )
-  ( 2 VCC )
+ ( /32307DCA CP6  C5 47uF {Lib=CP}
+  (    1 VCC )
+  (    2 GND )
  )
- ( /322D3295 R3 R4 330
-  ( 1 N-000105 )
-  ( 2 /LED1 )
+ ( /32307DC0 CP6  C6 47uF {Lib=CP}
+  (    1 VCC )
+  (    2 GND )
  )
- ( /322D32A0 R3 R5 330
-  ( 1 N-000104 )
-  ( 2 /LED2 )
+ ( /322D35B4 20dip300  U2 74LS688 {Lib=74LS688}
+  (    1 /PC-AEN )
+  (    2 /PC-A5 )
+  (    3 /REF5 )
+  (    4 /PC-A8 )
+  (    5 /REF8 )
+  (    6 /PC-A9 )
+  (    7 /REF9 )
+  (    8 /PC-A11 )
+  (    9 /REF11 )
+  (   10 GND )
+  (   11 /PC-A10 )
+  (   12 /REF10 )
+  (   13 /PC-A7 )
+  (   14 /REF7 )
+  (   15 /PC-A6 )
+  (   16 /REF6 )
+  (   17 /PC-A4 )
+  (   18 /REF4 )
+  (   19 /MATCHL )
+  (   20 VCC )
  )
- ( /325679C1 r_pack9 RR1 9x1K
-  ( 1 VCC )
-  ( 2 /REF5 )
-  ( 3 /REF4 )
-  ( 4 /REF8 )
-  ( 5 /REF6 )
-  ( 6 /REF9 )
-  ( 7 /REF7 )
-  ( 8 /REF11 )
-  ( 9 /REF10 )
-  ( 10 ? )
+ ( /322D32FA PGA120  U9 4003APG120 {Lib=4003APG120}
+  (   A1 ? )
+  (   A2 ? )
+  (   A3 ? )
+  (   A4 /MA9 )
+  (   A5 /MD1 )
+  (   A6 /MD3 )
+  (   A7 /MD4 )
+  (   A8 /MD5 )
+  (   A9 /MD6 )
+  (  A10 /CS1- )
+  (  A11 /MA0 )
+  (  A12 /STROBE )
+  (  A13 /WR- )
+  (   B1 ? )
+  (   B2 /MA1 )
+  (   B3 /MA7 )
+  (   B4 ? )
+  (   B5 ? )
+  (   B6 /MD2 )
+  (   B7 GND )
+  (   B8 /MD7 )
+  (   B9 /OE- )
+  (  B10 ? )
+  (  B11 VCC )
+  (  B12 VCC )
+  (  B13 ? )
+  (   C1 /MA13 )
+  (   C2 /MA3 )
+  (   C3 VCC )
+  (   C4 GND )
+  (   C5 ? )
+  (   C6 /MD0 )
+  (   C8 /MA16 )
+  (   C9 /MA10 )
+  (  C10 GND )
+  (  C11 VCC )
+  (  C12 /AUTOFD- )
+  (  C13 /MA5 )
+  (   D1 /MA14 )
+  (   D2 /MA11 )
+  (   D3 /MA2 )
+  (  D11 VCC )
+  (  D12 /BIT0 )
+  (  D13 /ERROR- )
+  (   E1 /MA4 )
+  (   E2 ? )
+  (   E3 ? )
+  (  E11 ? )
+  (  E12 /INIT- )
+  (  E13 /BIT1 )
+  (   F1 /MA15 )
+  (   F2 /MA6 )
+  (   F3 /MA12 )
+  (  F11 /SLCTIN- )
+  (  F12 /BIT2 )
+  (  F13 /LED2 )
+  (   G1 /MA8 )
+  (   G2 GND )
+  (  G11 GND )
+  (  G12 VCC )
+  (  G13 /BIT3 )
+  (   H1 /PC-A8 )
+  (   H2 /PC-A7 )
+  (   H3 /PC-A4 )
+  (  H11 /BIT7 )
+  (  H12 /BIT5 )
+  (  H13 /BIT4 )
+  (   J1 /PC-A6 )
+  (   J2 /PC-A5 )
+  (   J3 ? )
+  (  J11 ? )
+  (  J12 /BUST+ )
+  (  J13 /BIT6 )
+  (   K1 /8MH-OUT )
+  (   K2 /PC-A3 )
+  (   K3 GND )
+  (  K11 GND )
+  (  K12 ? )
+  (  K13 /ACK )
+  (   L1 N-000145 )
+  (   L2 /SEL_LPT )
+  (   L3 VCC )
+  (   L4 /CLKLCA )
+  (   L5 ? )
+  (   L6 ? )
+  (   L7 GND )
+  (   L8 /PC-A10 )
+  (   L9 ? )
+  (  L10 VCC )
+  (  L11 /DONE )
+  (  L12 /D7 )
+  (  L13 /PE+ )
+  (   M1 ? )
+  (   M2 ? )
+  (   M3 /LED1 )
+  (   M4 /CLKLCA )
+  (   M5 /PC-A2 )
+  (   M6 /PC-A0 )
+  (   M7 VCC )
+  (   M8 /PC-RD )
+  (   M9 /D3 )
+  (  M10 /D4 )
+  (  M11 /D6 )
+  (  M12 /PROG- )
+  (   N1 ? )
+  (   N2 /D0 )
+  (   N3 ? )
+  (   N4 /PC-A1 )
+  (   N5 ? )
+  (   N6 /PC-WR )
+  (   N7 /PC-A9 )
+  (   N8 /D1 )
+  (   N9 /D2 )
+  (  N10 /PC-AEN )
+  (  N11 /D5 )
+  (  N12 ? )
+  (  N13 /SLCT+ )
  )
- ( /322D31F4 20dip300 U1 74LS245
-  ( 1 /DIR )
-  ( 2 /PC-DB0 )
-  ( 3 /PC-DB1 )
-  ( 4 /PC-DB2 )
-  ( 5 /PC-DB3 )
-  ( 6 /PC-DB4 )
-  ( 7 /PC-DB5 )
-  ( 8 /PC-DB6 )
-  ( 9 /PC-DB7 )
-  ( 10 GND )
-  ( 11 /D7 )
-  ( 12 /D6 )
-  ( 13 /D5 )
-  ( 14 /D4 )
-  ( 15 /D3 )
-  ( 16 /D2 )
-  ( 17 /D1 )
-  ( 18 /D0 )
-  ( 19 /ENBBUF )
-  ( 20 VCC )
+ ( /322D32BE LEDV  D2 LED {Lib=LED}
+  (    1 N-000104 )
+  (    2 GND )
  )
- ( /322D35B4 20dip300 U2 74LS688
-  ( 1 /PC-AEN )
-  ( 2 /PC-A5 )
-  ( 3 /REF5 )
-  ( 4 /PC-A8 )
-  ( 5 /REF8 )
-  ( 6 /PC-A9 )
-  ( 7 /REF9 )
-  ( 8 /PC-A11 )
-  ( 9 /REF11 )
-  ( 10 GND )
-  ( 11 /PC-A10 )
-  ( 12 /REF10 )
-  ( 13 /PC-A7 )
-  ( 14 /REF7 )
-  ( 15 /PC-A6 )
-  ( 16 /REF6 )
-  ( 17 /PC-A4 )
-  ( 18 /REF4 )
-  ( 19 /MATCHL )
-  ( 20 VCC )
+ ( /322D32AC LEDV  D1 LED {Lib=LED}
+  (    1 N-000105 )
+  (    2 GND )
  )
- ( /4A087146 20dip300 U3 74LS541
-  ( 1 GND )
-  ( 2 /PC-A1 )
-  ( 3 /PC-A0 )
-  ( 4 /PC-A2 )
-  ( 5 /PC-A3 )
-  ( 6 /PC-IOW )
-  ( 7 /PC-IOR )
-  ( 8 /PC-RST )
-  ( 9 /PC-RST )
-  ( 10 GND )
-  ( 11 ? )
-  ( 12 /RSTL )
-  ( 13 /PC-RD )
-  ( 14 /PC-WR )
-  ( 15 N-000109 )
-  ( 16 N-000108 )
-  ( 17 N-000107 )
-  ( 18 N-000106 )
-  ( 19 GND )
-  ( 20 VCC )
+ ( /322D32A0 R3  R5 330 {Lib=R}
+  (    1 N-000104 )
+  (    2 /LED2 )
  )
- ( /3240023F 32dip600 U5 628128
-  ( 2 /MA16 )
-  ( 3 /MA14 )
-  ( 4 /MA12 )
-  ( 5 /MA7 )
-  ( 6 /MA6 )
-  ( 7 /MA5 )
-  ( 8 /MA4 )
-  ( 9 /MA3 )
-  ( 10 /MA2 )
-  ( 11 /MA1 )
-  ( 12 /MA0 )
-  ( 13 /MD0 )
-  ( 14 /MD1 )
-  ( 15 /MD2 )
-  ( 16 GND )
-  ( 17 /MD3 )
-  ( 18 /MD4 )
-  ( 19 /MD5 )
-  ( 20 /MD6 )
-  ( 21 /MD7 )
-  ( 22 /CS1- )
-  ( 23 /MA10 )
-  ( 24 /OE- )
-  ( 25 /MA11 )
-  ( 26 /MA9 )
-  ( 27 /MA8 )
-  ( 28 /MA13 )
-  ( 29 /WR- )
-  ( 30 N-000071 )
-  ( 31 /MA15 )
-  ( 32 VCC )
+ ( /322D3295 R3  R4 330 {Lib=R}
+  (    1 N-000105 )
+  (    2 /LED1 )
  )
- ( /322D321C 24dip300 U8 EP600
-  ( 1 GND )
-  ( 2 /MATCHL )
-  ( 3 N-000106 )
-  ( 4 N-000107 )
-  ( 5 N-000108 )
-  ( 6 N-000109 )
-  ( 7 /PC-WR )
-  ( 8 ? )
-  ( 9 ? )
-  ( 10 ? )
-  ( 11 /RSTL )
-  ( 12 GND )
-  ( 13 /WR_REG )
-  ( 14 /PC-RD )
-  ( 15 /WR_REG )
-  ( 16 /CLKLCA )
-  ( 17 /DIR )
-  ( 18 /SEL_LPT )
-  ( 19 /PROG- )
-  ( 20 /DONE )
-  ( 21 /D0 )
-  ( 22 /ENBBUF )
-  ( 23 VCC )
-  ( 24 VCC )
+ ( /322D321C 24dip300  U8 EP600 {Lib=EP600}
+  (    1 GND )
+  (    2 /MATCHL )
+  (    3 N-000106 )
+  (    4 N-000107 )
+  (    5 N-000108 )
+  (    6 N-000109 )
+  (    7 /PC-WR )
+  (    8 ? )
+  (    9 ? )
+  (   10 ? )
+  (   11 /RSTL )
+  (   12 GND )
+  (   13 /WR_REG )
+  (   14 /PC-RD )
+  (   15 /WR_REG )
+  (   16 /CLKLCA )
+  (   17 /DIR )
+  (   18 /SEL_LPT )
+  (   19 /PROG- )
+  (   20 /DONE )
+  (   21 /D0 )
+  (   22 /ENBBUF )
+  (   23 VCC )
+  (   24 VCC )
  )
- ( /322D32FA PGA120 U9 4003APG120
-  ( A1 ? )
-  ( A2 ? )
-  ( A3 ? )
-  ( A4 /MA9 )
-  ( A5 /MD1 )
-  ( A6 /MD3 )
-  ( A7 /MD4 )
-  ( A8 /MD5 )
-  ( A9 /MD6 )
-  ( A10 /CS1- )
-  ( A11 /MA0 )
-  ( A12 /STROBE )
-  ( A13 /WR- )
-  ( B1 ? )
-  ( B2 /MA1 )
-  ( B3 /MA7 )
-  ( B4 ? )
-  ( B5 ? )
-  ( B6 /MD2 )
-  ( B7 GND )
-  ( B8 /MD7 )
-  ( B9 /OE- )
-  ( B10 ? )
-  ( B11 VCC )
-  ( B12 VCC )
-  ( B13 ? )
-  ( C1 /MA13 )
-  ( C2 /MA3 )
-  ( C3 VCC )
-  ( C4 GND )
-  ( C5 ? )
-  ( C6 /MD0 )
-  ( C8 /MA16 )
-  ( C9 /MA10 )
-  ( C10 GND )
-  ( C11 VCC )
-  ( C12 /AUTOFD- )
-  ( C13 /MA5 )
-  ( D1 /MA14 )
-  ( D2 /MA11 )
-  ( D3 /MA2 )
-  ( D11 VCC )
-  ( D12 /BIT0 )
-  ( D13 /ERROR- )
-  ( E1 /MA4 )
-  ( E2 ? )
-  ( E3 ? )
-  ( E11 ? )
-  ( E12 /INIT- )
-  ( E13 /BIT1 )
-  ( F1 /MA15 )
-  ( F2 /MA6 )
-  ( F3 /MA12 )
-  ( F11 /SLCTIN- )
-  ( F12 /BIT2 )
-  ( F13 /LED2 )
-  ( G1 /MA8 )
-  ( G2 GND )
-  ( G11 GND )
-  ( G12 VCC )
-  ( G13 /BIT3 )
-  ( H1 /PC-A8 )
-  ( H2 /PC-A7 )
-  ( H3 /PC-A4 )
-  ( H11 /BIT7 )
-  ( H12 /BIT5 )
-  ( H13 /BIT4 )
-  ( J1 /PC-A6 )
-  ( J2 /PC-A5 )
-  ( J3 ? )
-  ( J11 ? )
-  ( J12 /BUST+ )
-  ( J13 /BIT6 )
-  ( K1 /8MH-OUT )
-  ( K2 /PC-A3 )
-  ( K3 GND )
-  ( K11 GND )
-  ( K12 ? )
-  ( K13 /ACK )
-  ( L1 N-000145 )
-  ( L2 /SEL_LPT )
-  ( L3 VCC )
-  ( L4 /CLKLCA )
-  ( L5 ? )
-  ( L6 ? )
-  ( L7 GND )
-  ( L8 /PC-A10 )
-  ( L9 ? )
-  ( L10 VCC )
-  ( L11 /DONE )
-  ( L12 /D7 )
-  ( L13 /PE+ )
-  ( M1 ? )
-  ( M2 ? )
-  ( M3 /LED1 )
-  ( M4 /CLKLCA )
-  ( M5 /PC-A2 )
-  ( M6 /PC-A0 )
-  ( M7 VCC )
-  ( M8 /PC-RD )
-  ( M9 /D3 )
-  ( M10 /D4 )
-  ( M11 /D6 )
-  ( M12 /PROG- )
-  ( N1 ? )
-  ( N2 /D0 )
-  ( N3 ? )
-  ( N4 /PC-A1 )
-  ( N5 ? )
-  ( N6 /PC-WR )
-  ( N7 /PC-A9 )
-  ( N8 /D1 )
-  ( N9 /D2 )
-  ( N10 /PC-AEN )
-  ( N11 /D5 )
-  ( N12 ? )
-  ( N13 /SLCT+ )
+ ( /322D31F4 20dip300  U1 74LS245 {Lib=74LS245}
+  (    1 /DIR )
+  (    2 /PC-DB0 )
+  (    3 /PC-DB1 )
+  (    4 /PC-DB2 )
+  (    5 /PC-DB3 )
+  (    6 /PC-DB4 )
+  (    7 /PC-DB5 )
+  (    8 /PC-DB6 )
+  (    9 /PC-DB7 )
+  (   10 GND )
+  (   11 /D7 )
+  (   12 /D6 )
+  (   13 /D5 )
+  (   14 /D4 )
+  (   15 /D3 )
+  (   16 /D2 )
+  (   17 /D1 )
+  (   18 /D0 )
+  (   19 /ENBBUF )
+  (   20 VCC )
  )
- ( /32307EC0 HC-18UH X1 8MHz
-  ( 1 N-000145 )
-  ( 2 N-000146 )
+ ( /322D3011 BUS_PC  BUS1 BUSPC {Lib=BUSPC}
+  (    1 GND )
+  (    2 /PC-RST )
+  (    3 VCC )
+  (    4 ? )
+  (    5 ? )
+  (    6 ? )
+  (    7 ? )
+  (    8 ? )
+  (    9 ? )
+  (   10 ? )
+  (   11 ? )
+  (   12 ? )
+  (   13 /PC-IOW )
+  (   14 /PC-IOR )
+  (   15 ? )
+  (   16 ? )
+  (   17 ? )
+  (   18 ? )
+  (   19 ? )
+  (   20 ? )
+  (   21 ? )
+  (   22 ? )
+  (   23 ? )
+  (   24 ? )
+  (   25 ? )
+  (   26 ? )
+  (   27 ? )
+  (   28 ? )
+  (   29 VCC )
+  (   30 ? )
+  (   31 GND )
+  (   32 ? )
+  (   33 /PC-DB7 )
+  (   34 /PC-DB6 )
+  (   35 /PC-DB5 )
+  (   36 /PC-DB4 )
+  (   37 /PC-DB3 )
+  (   38 /PC-DB2 )
+  (   39 /PC-DB1 )
+  (   40 /PC-DB0 )
+  (   41 ? )
+  (   42 /PC-AEN )
+  (   43 ? )
+  (   44 ? )
+  (   45 ? )
+  (   46 ? )
+  (   47 ? )
+  (   48 ? )
+  (   49 ? )
+  (   50 ? )
+  (   51 /PC-A11 )
+  (   52 /PC-A10 )
+  (   53 /PC-A9 )
+  (   54 /PC-A8 )
+  (   55 /PC-A7 )
+  (   56 /PC-A6 )
+  (   57 /PC-A5 )
+  (   58 /PC-A4 )
+  (   59 /PC-A3 )
+  (   60 /PC-A2 )
+  (   61 /PC-A1 )
+  (   62 /PC-A0 )
  )
 )
 *
 { Allowed footprints by component:
-$component C1
- CP*
+$component P1
+ DB25*
+$endlist
+$component R3
+ R?
+ SM0603
+ SM0805
+ R?-*
+ SM1206
+$endlist
+$component C3
  SM*
+ C?
+ C1-1
 $endlist
 $component C2
  SM*
  C?
  C1-1
 $endlist
-$component C3
+$component R2
+ R?
+ SM0603
+ SM0805
+ R?-*
+ SM1206
+$endlist
+$component R1
+ R?
+ SM0603
+ SM0805
+ R?-*
+ SM1206
+$endlist
+$component C1
+ CP*
  SM*
- C?
- C1-1
 $endlist
 $component C4
  CP*
@@ -450,15 +474,6 @@ $component C6
  CP*
  SM*
 $endlist
-$component D1
- LED-3MM
- LED-5MM
- LED-10MM
- LED-0603
- LED-0805
- LED-1206
- LEDV
-$endlist
 $component D2
  LED-3MM
  LED-5MM
@@ -468,24 +483,16 @@ $component D2
  LED-1206
  LEDV
 $endlist
-$component P1
- DB25*
+$component D1
+ LED-3MM
+ LED-5MM
+ LED-10MM
+ LED-0603
+ LED-0805
+ LED-1206
+ LEDV
 $endlist
-$component R1
- R?
- SM0603
- SM0805
- R?-*
- SM1206
-$endlist
-$component R2
- R?
- SM0603
- SM0805
- R?-*
- SM1206
-$endlist
-$component R3
+$component R5
  R?
  SM0603
  SM0805
@@ -499,12 +506,428 @@ $component R4
  R?-*
  SM1206
 $endlist
-$component R5
- R?
- SM0603
- SM0805
- R?-*
- SM1206
-$endlist
 $endfootprintlist
 }
+{ Pin List by Nets
+Net 15 "/PC-RST" "PC-RST"
+ U3 9
+ U3 8
+ BUS1 2
+Net 16 "/PC-IOR" "PC-IOR"
+ BUS1 14
+ U3 7
+Net 17 "/PC-IOW" "PC-IOW"
+ BUS1 13
+ U3 6
+Net 18 "/PC-A2" "PC-A2"
+ BUS1 60
+ U9 M5
+ U3 4
+Net 19 "/PC-A1" "PC-A1"
+ BUS1 61
+ U3 2
+ U9 N4
+Net 20 "/PC-A0" "PC-A0"
+ U9 M6
+ U3 3
+ BUS1 62
+Net 21 "GND" "GND"
+ JP1 15
+ U8 1
+ JP1 13
+ JP1 11
+ P1 25
+ P1 24
+ D1 2
+ P1 23
+ P1 22
+ D2 2
+ U1 10
+ U8 12
+ P1 21
+ P1 20
+ U5 16
+ U9 K3
+ U9 C4
+ U9 G2
+ U9 G11
+ U9 K11
+ U9 C10
+ U9 B7
+ U9 L7
+ BUS1 1
+ BUS1 31
+ JP1 9
+ JP1 7
+ JP1 5
+ JP1 3
+ JP1 1
+ C1 2
+ C4 2
+ C5 2
+ C6 2
+ U2 10
+ C3 2
+ P1 18
+ C2 2
+ U3 10
+ P1 19
+ U3 19
+ U3 1
+Net 22 "VCC" "VCC"
+ U2 20
+ BUS1 29
+ U5 32
+ U9 B12
+ U9 L10
+ U9 G12
+ U8 23
+ U8 24
+ U1 20
+ U9 M7
+ R3 2
+ U9 D11
+ C4 1
+ U9 C11
+ C1 1
+ RR1 1
+ U9 B11
+ U9 C3
+ U3 20
+ U9 L3
+ BUS1 3
+ C6 1
+ C5 1
+Net 23 "/PC-AEN" "PC-AEN"
+ U9 N10
+ BUS1 42
+ U2 1
+Net 53 "/MA8" "MA8"
+ U9 G1
+ U5 27
+Net 54 "/MD4" "MD4"
+ U9 A7
+ U5 18
+Net 55 "/MA13" "MA13"
+ U5 28
+ U9 C1
+Net 56 "/MD5" "MD5"
+ U5 19
+ U9 A8
+Net 57 "/WR-" "WR-"
+ U5 29
+ U9 A13
+Net 61 "/RSTL" "RSTL"
+ U8 11
+ U3 12
+Net 63 "/MA16" "MA16"
+ U5 2
+ U9 C8
+Net 64 "/MA14" "MA14"
+ U9 D1
+ U5 3
+Net 65 "/MA12" "MA12"
+ U5 4
+ U9 F3
+Net 66 "/MA7" "MA7"
+ U9 B3
+ U5 5
+Net 67 "/MA6" "MA6"
+ U9 F2
+ U5 6
+Net 68 "/MA5" "MA5"
+ U9 C13
+ U5 7
+Net 69 "/MA4" "MA4"
+ U5 8
+ U9 E1
+Net 70 "/MD6" "MD6"
+ U5 20
+ U9 A9
+Net 71 "" ""
+ R3 1
+ U5 30
+Net 72 "/MD7" "MD7"
+ U5 21
+ U9 B8
+Net 73 "/MA15" "MA15"
+ U9 F1
+ U5 31
+Net 74 "/MA0" "MA0"
+ U9 A11
+ U5 12
+Net 75 "/CS1-" "CS1-"
+ U9 A10
+ U5 22
+Net 76 "/MD0" "MD0"
+ U9 C6
+ U5 13
+Net 77 "/MA10" "MA10"
+ U9 C9
+ U5 23
+Net 78 "/MD1" "MD1"
+ U5 14
+ U9 A5
+Net 79 "/OE-" "OE-"
+ U9 B9
+ U5 24
+Net 80 "/MD2" "MD2"
+ U9 B6
+ U5 15
+Net 81 "/MA11" "MA11"
+ U5 25
+ U9 D2
+Net 82 "/MA9" "MA9"
+ U9 A4
+ U5 26
+Net 83 "/MD3" "MD3"
+ U9 A6
+ U5 17
+Net 84 "/PC-RD" "PC-RD"
+ U3 13
+ U8 14
+ U9 M8
+Net 85 "/SEL_LPT" "SEL_LPT"
+ U9 L2
+ U8 18
+Net 86 "/DIR" "DIR"
+ U8 17
+ U1 1
+Net 87 "/PC-DB0" "PC-DB0"
+ BUS1 40
+ U1 2
+Net 88 "/PC-DB1" "PC-DB1"
+ BUS1 39
+ U1 3
+Net 89 "/PC-DB2" "PC-DB2"
+ U1 4
+ BUS1 38
+Net 90 "/PC-DB3" "PC-DB3"
+ U1 5
+ BUS1 37
+Net 91 "/PC-DB4" "PC-DB4"
+ U1 6
+ BUS1 36
+Net 92 "/PC-DB5" "PC-DB5"
+ U1 7
+ BUS1 35
+Net 93 "/PC-DB6" "PC-DB6"
+ U1 8
+ BUS1 34
+Net 94 "/PC-DB7" "PC-DB7"
+ BUS1 33
+ U1 9
+Net 95 "/D7" "D7"
+ U9 L12
+ U1 11
+Net 96 "/D6" "D6"
+ U9 M11
+ U1 12
+Net 97 "/D5" "D5"
+ U1 13
+ U9 N11
+Net 98 "/D4" "D4"
+ U9 M10
+ U1 14
+Net 99 "/D3" "D3"
+ U1 15
+ U9 M9
+Net 100 "/D2" "D2"
+ U1 16
+ U9 N9
+Net 101 "/D1" "D1"
+ U9 N8
+ U1 17
+Net 103 "/LED2" "LED2"
+ R5 2
+ U9 F13
+Net 104 "" ""
+ D2 1
+ R5 1
+Net 105 "" ""
+ R4 1
+ D1 1
+Net 106 "" ""
+ U3 18
+ U8 3
+Net 107 "" ""
+ U8 4
+ U3 17
+Net 108 "" ""
+ U3 16
+ U8 5
+Net 109 "" ""
+ U3 15
+ U8 6
+Net 110 "/PC-WR" "PC-WR"
+ U8 7
+ U9 N6
+ U3 14
+Net 111 "/PC-A9" "PC-A9"
+ U2 6
+ U9 N7
+ BUS1 53
+Net 112 "/PC-A8" "PC-A8"
+ U9 H1
+ U2 4
+ BUS1 54
+Net 113 "/PC-A7" "PC-A7"
+ U9 H2
+ U2 13
+ BUS1 55
+Net 114 "/PC-A6" "PC-A6"
+ BUS1 56
+ U2 15
+ U9 J1
+Net 115 "/PC-A5" "PC-A5"
+ U2 2
+ BUS1 57
+ U9 J2
+Net 116 "/PC-A4" "PC-A4"
+ BUS1 58
+ U2 17
+ U9 H3
+Net 117 "/PC-A3" "PC-A3"
+ U3 5
+ BUS1 59
+ U9 K2
+Net 118 "/D0" "D0"
+ U8 21
+ U9 N2
+ U1 18
+Net 119 "/ENBBUF" "ENBBUF"
+ U1 19
+ U8 22
+Net 120 "/PC-A11" "PC-A11"
+ U2 8
+ BUS1 51
+Net 121 "/PC-A10" "PC-A10"
+ BUS1 52
+ U2 11
+ U9 L8
+Net 123 "/MA2" "MA2"
+ U9 D3
+ U5 10
+Net 125 "/LED1" "LED1"
+ U9 M3
+ R4 2
+Net 127 "/CLKLCA" "CLKLCA"
+ U9 L4
+ U9 M4
+ U8 16
+Net 130 "/MATCHL" "MATCHL"
+ U2 19
+ U8 2
+Net 133 "/MA1" "MA1"
+ U5 11
+ U9 B2
+Net 134 "/MA3" "MA3"
+ U5 9
+ U9 C2
+Net 137 "/DONE" "DONE"
+ U9 L11
+ U8 20
+Net 139 "/PROG-" "PROG-"
+ U9 M12
+ U8 19
+Net 144 "/WR_REG" "WR_REG"
+ U8 15
+ U8 13
+Net 145 "" ""
+ X1 1
+ C2 1
+ R1 2
+ U9 L1
+Net 146 "" ""
+ C3 1
+ R1 1
+ X1 2
+ R2 2
+Net 147 "/BIT6" "BIT6"
+ U9 J13
+ P1 8
+Net 148 "/BIT7" "BIT7"
+ U9 H11
+ P1 9
+Net 149 "/ACK" "ACK"
+ U9 K13
+ P1 10
+Net 150 "/BUST+" "BUST+"
+ U9 J12
+ P1 11
+Net 151 "/PE+" "PE+"
+ U9 L13
+ P1 12
+Net 152 "/SLCT+" "SLCT+"
+ P1 13
+ U9 N13
+Net 153 "/8MH-OUT" "8MH-OUT"
+ R2 1
+ U9 K1
+Net 155 "/STROBE" "STROBE"
+ U9 A12
+ P1 1
+Net 156 "/AUTOFD-" "AUTOFD-"
+ P1 14
+ U9 C12
+Net 157 "/ERROR-" "ERROR-"
+ U9 D13
+ P1 15
+Net 158 "/BIT2" "BIT2"
+ U9 F12
+ P1 4
+Net 159 "/INIT-" "INIT-"
+ U9 E12
+ P1 16
+Net 160 "/SLCTIN-" "SLCTIN-"
+ U9 F11
+ P1 17
+Net 161 "/BIT0" "BIT0"
+ P1 2
+ U9 D12
+Net 162 "/BIT1" "BIT1"
+ U9 E13
+ P1 3
+Net 163 "/BIT3" "BIT3"
+ U9 G13
+ P1 5
+Net 164 "/BIT4" "BIT4"
+ U9 H13
+ P1 6
+Net 165 "/BIT5" "BIT5"
+ P1 7
+ U9 H12
+Net 166 "/REF10" "REF10"
+ RR1 9
+ U2 12
+ JP1 2
+Net 167 "/REF11" "REF11"
+ JP1 4
+ RR1 8
+ U2 9
+Net 168 "/REF7" "REF7"
+ RR1 7
+ JP1 6
+ U2 14
+Net 169 "/REF9" "REF9"
+ RR1 6
+ JP1 8
+ U2 7
+Net 170 "/REF6" "REF6"
+ RR1 5
+ JP1 10
+ U2 16
+Net 171 "/REF8" "REF8"
+ RR1 4
+ JP1 12
+ U2 5
+Net 172 "/REF4" "REF4"
+ U2 18
+ JP1 14
+ RR1 3
+Net 173 "/REF5" "REF5"
+ RR1 2
+ U2 3
+ JP1 16
+}
+#End
diff --git a/demos/interf_u/interf_u.pro b/demos/interf_u/interf_u.pro
index 05b66d70e8..cbafb9cda6 100644
--- a/demos/interf_u/interf_u.pro
+++ b/demos/interf_u/interf_u.pro
@@ -1,6 +1,6 @@
-update=01/02/2011 18:49:08
+update=04/02/2011 22:02:33
 version=1
-last_client=eeschema
+last_client=pcbnew
 [common]
 NetDir=
 [general]
@@ -12,33 +12,6 @@ version=1
 NetIExt=net
 [cvpcb/libraries]
 EquName1=devcms
-[pcbnew]
-version=1
-PadDrlX=354
-PadDimH=550
-PadDimV=550
-BoardThickness=630
-SgPcb45=1
-TxtPcbV=800
-TxtPcbH=600
-TxtModV=600
-TxtModH=600
-TxtModW=120
-VEgarde=100
-DrawLar=150
-EdgeLar=50
-TxtLar=170
-MSegLar=400
-LastNetListRead=interf_u.net
-[pcbnew/libraries]
-LibDir=F:\\kicad\\share\\modules\\packages3d
-LibName1=connect
-LibName2=discret
-LibName3=dip_sockets
-LibName4=pin_array
-LibName5=divers
-LibName6=libcms
-LibName7=display
 [eeschema]
 version=1
 LibDir=
@@ -82,3 +55,30 @@ LibName8=adc-dac
 LibName9=memory
 LibName10=xilinx
 LibName11=special
+[pcbnew]
+version=1
+PadDrlX=354
+PadDimH=550
+PadDimV=550
+BoardThickness=630
+SgPcb45=1
+TxtPcbV=800
+TxtPcbH=600
+TxtModV=600
+TxtModH=600
+TxtModW=120
+VEgarde=100
+DrawLar=150
+EdgeLar=50
+TxtLar=170
+MSegLar=400
+LastNetListRead=interf_u.net
+[pcbnew/libraries]
+LibDir=F:\\kicad\\share\\modules\\packages3d
+LibName1=connect
+LibName2=discret
+LibName3=dip_sockets
+LibName4=pin_array
+LibName5=divers
+LibName6=libcms
+LibName7=display
diff --git a/demos/interf_u/interf_u.sch b/demos/interf_u/interf_u.sch
index 32c1c51b1d..2b7169d274 100644
--- a/demos/interf_u/interf_u.sch
+++ b/demos/interf_u/interf_u.sch
@@ -1,4 +1,4 @@
-EESchema Schematic File Version 2  date 07/12/2010 12:09:23
+EESchema Schematic File Version 2  date 02/02/2011 07:13:59
 LIBS:power
 LIBS:device
 LIBS:conn
diff --git a/include/bitmaps.h b/include/bitmaps.h
index ccb3a2efcc..408e6ee6b6 100644
--- a/include/bitmaps.h
+++ b/include/bitmaps.h
@@ -180,6 +180,7 @@ extern const char* lang_en_xpm[];
 extern const char* lang_es_xpm[];
 extern const char* lang_fr_xpm[];
 extern const char* lang_fi_xpm[];
+extern const char* lang_gr_xpm[];
 extern const char* lang_hu_xpm[];
 extern const char* lang_it_xpm[];
 extern const char* lang_jp_xpm[];
diff --git a/include/id.h b/include/id.h
index ef95edb486..2d9f90de47 100644
--- a/include/id.h
+++ b/include/id.h
@@ -88,6 +88,7 @@ enum main_id
     ID_LANGUAGE_FINNISH,
     ID_LANGUAGE_SPANISH,
     ID_LANGUAGE_GERMAN,
+    ID_LANGUAGE_GREEK,
     ID_LANGUAGE_RUSSIAN,
     ID_LANGUAGE_PORTUGUESE,
     ID_LANGUAGE_ITALIAN,
diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp
index 17ecf54772..ee03d8470f 100644
--- a/pcbnew/class_module.cpp
+++ b/pcbnew/class_module.cpp
@@ -22,6 +22,7 @@
 #include "3d_struct.h"
 #include "protos.h"
 #include "richio.h"
+#include "filter_reader.h"
 
 
 /*********************************************/