=== modified file 'common/CMakeLists.txt'
--- common/CMakeLists.txt	2016-05-02 13:56:14 +0000
+++ common/CMakeLists.txt	2016-05-20 21:08:41 +0000
@@ -247,6 +247,7 @@
     search_stack.cpp
     selcolor.cpp
     systemdirsappend.cpp
+    toolbar_art.cpp
     trigo.cpp
     utf8.cpp
     validators.cpp

=== added file 'common/toolbar_art.cpp'
--- common/toolbar_art.cpp	1970-01-01 00:00:00 +0000
+++ common/toolbar_art.cpp	2016-05-20 21:44:07 +0000
@@ -0,0 +1,92 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2016 KiCad Developers, see CHANGELOG.TXT for contributors.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, you may find one here:
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * or you may search the http://www.gnu.org website for the version 2 license,
+ * or you may write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+ 
+#include <wx/menu.h>
+ 
+#include <toolbar_art.h>
+
+int TOOLBAR_ART::ShowDropDown( wxWindow* aWindow, const wxAuiToolBarItemArray& aItems )
+{
+    wxMenu menuPopup;
+    
+    size_t items_added = 0;
+    
+    size_t i, count = aItems.GetCount();
+    for( i = 0; i < count; ++i )
+    {
+        wxAuiToolBarItem& item = aItems.Item( i );
+        
+        wxString text;
+        wxMenuItem* m;
+        
+        switch( item.GetKind() )
+        {
+        case wxITEM_NORMAL:
+            text = item.GetShortHelp();
+            if ( text.empty() )
+                text = item.GetLabel();
+                
+            if ( text.empty() )
+                text = "";
+                
+            m = new wxMenuItem( &menuPopup, item.GetId(), text, item.GetShortHelp() );
+            m->SetBitmap( item.GetBitmap() );
+            menuPopup.Append( m );
+            items_added++;
+            break;
+        case wxITEM_CHECK:
+            text = item.GetShortHelp();
+            if ( text.empty() )
+                text = item.GetLabel();
+                
+            if ( text.empty() )
+                text = "";
+                
+            m = new wxMenuItem( &menuPopup, item.GetId(), text, item.GetShortHelp(), wxITEM_CHECK );
+            m->Check( item.GetState() );
+            m->SetBitmap( item.GetBitmap() );
+            menuPopup.Append( m );
+            items_added++;
+            break;
+        case wxITEM_SEPARATOR:
+            if( items_added > 0 )
+                menuPopup.AppendSeparator();
+            break;
+        default:
+            break;
+        }
+    }
+        
+    // find out where to put the popup menu of window items
+    wxPoint pt = ::wxGetMousePosition();
+    pt = aWindow->ScreenToClient( pt );
+        
+    // find out the screen coordinate at the bottom of the tab ctrl
+    wxRect cli_rect = aWindow->GetClientRect();
+    pt.y = cli_rect.y + cli_rect.height;
+    
+    aWindow->PopupMenu( &menuPopup, pt );
+    
+    // Return -1 because otherwise the wxCommandEvent handler will break wxITEM_CHECK
+    return -1;
+}

=== added file 'include/toolbar_art.h'
--- include/toolbar_art.h	1970-01-01 00:00:00 +0000
+++ include/toolbar_art.h	2016-05-20 21:42:55 +0000
@@ -0,0 +1,35 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2016 KiCad Developers, see CHANGELOG.TXT for contributors.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, you may find one here:
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * or you may search the http://www.gnu.org website for the version 2 license,
+ * or you may write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+ 
+#ifndef TOOLBAR_ART_H
+#define TOOLBAR_ART_H
+ 
+#include <wx/aui/auibar.h>
+ 
+class TOOLBAR_ART : public wxAuiDefaultToolBarArt
+{
+    // Only this function needs to be overriden so far
+    virtual int ShowDropDown( wxWindow* aWindow, const wxAuiToolBarItemArray& aItems );
+};
+
+#endif // TOOLBAR_ART_H

=== modified file 'pcbnew/tool_pcb.cpp'
--- pcbnew/tool_pcb.cpp	2016-05-11 03:33:24 +0000
+++ pcbnew/tool_pcb.cpp	2016-05-20 21:44:44 +0000
@@ -46,6 +46,8 @@
 #include <hotkeys.h>
 #include <class_pcb_layer_box_selector.h>
 
+#include <toolbar_art.h>
+
 #include <wx/wupdlock.h>
 
 extern bool IsWxPythonLoaded();
@@ -327,7 +329,8 @@
     wxWindowUpdateLocker dummy( this );
 
     m_optionsToolBar = new wxAuiToolBar( this, ID_OPT_TOOLBAR, wxDefaultPosition, wxDefaultSize,
-                                         wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_VERTICAL );
+                                         wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_VERTICAL | wxAUI_TB_OVERFLOW );
+    m_optionsToolBar->SetArtProvider( new TOOLBAR_ART );
 
     m_optionsToolBar->AddTool( ID_TB_OPTIONS_DRC_OFF, wxEmptyString, KiBitmap( drc_off_xpm ),
                                _( "Enable design rule checking" ), wxITEM_CHECK );

