diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index 61ea2567ef..f4dc848bb5 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -439,8 +439,8 @@ set( PCB_COMMON_SRCS
     ../pcbnew/class_track.cpp
     ../pcbnew/class_zone.cpp
     ../pcbnew/collectors.cpp
-    ../pcbnew/connectivity_algo.cpp
-    ../pcbnew/connectivity_data.cpp
+    ../pcbnew/connectivity/connectivity_algo.cpp
+    ../pcbnew/connectivity/connectivity_data.cpp
     ../pcbnew/convert_drawsegment_list_to_polygon.cpp
     ../pcbnew/drc_item.cpp
     ../pcbnew/eagle_plugin.cpp
diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt
index 2c239164d8..d6d9b924c0 100644
--- a/pcbnew/CMakeLists.txt
+++ b/pcbnew/CMakeLists.txt
@@ -10,6 +10,8 @@ endif()
 
 add_definitions( -DPCBNEW )
 
+add_subdirectory(connectivity)
+
 add_subdirectory(router)
 
 # psnrouter depends on make_lexer outputs in common (bug # 1285878 )
@@ -677,6 +679,7 @@ set( PCBNEW_KIFACE_LIBRARIES
     idf3
     legacy_wx
     3d-viewer
+    connectivity
     pcbcommon
     pnsrouter
     pcad2kicadpcb
diff --git a/pcbnew/autorouter/ar_autoplacer.cpp b/pcbnew/autorouter/ar_autoplacer.cpp
index 5d85137f7f..3ec07d5ee2 100644
--- a/pcbnew/autorouter/ar_autoplacer.cpp
+++ b/pcbnew/autorouter/ar_autoplacer.cpp
@@ -42,7 +42,7 @@
 
 #include <board_commit.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <ratsnest_data.h>
 
 #include <widgets/progress_reporter.h>
diff --git a/pcbnew/autorouter/ar_autoplacer.h b/pcbnew/autorouter/ar_autoplacer.h
index f7bc233d40..a16426793e 100644
--- a/pcbnew/autorouter/ar_autoplacer.h
+++ b/pcbnew/autorouter/ar_autoplacer.h
@@ -35,7 +35,7 @@
 #include <class_board.h>
 #include <class_module.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <view/view_overlay.h>
 
diff --git a/pcbnew/block.cpp b/pcbnew/block.cpp
index ed417861f4..8104efcec4 100644
--- a/pcbnew/block.cpp
+++ b/pcbnew/block.cpp
@@ -50,7 +50,7 @@
 #include <pcbnew.h>
 #include <protos.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #define BLOCK_OUTLINE_COLOR YELLOW
 
diff --git a/pcbnew/board_commit.cpp b/pcbnew/board_commit.cpp
index 550aa850cc..e3311cd670 100644
--- a/pcbnew/board_commit.cpp
+++ b/pcbnew/board_commit.cpp
@@ -26,12 +26,11 @@
 #include <class_module.h>
 #include <pcb_edit_frame.h>
 #include <tool/tool_manager.h>
-#include <ratsnest_data.h>
 #include <view/view.h>
 #include <board_commit.h>
 #include <tools/pcb_tool.h>
 #include <tools/pcb_actions.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <functional>
 using namespace std::placeholders;
diff --git a/pcbnew/board_connected_item.cpp b/pcbnew/board_connected_item.cpp
index 0ade863eda..26eb9ba7ad 100644
--- a/pcbnew/board_connected_item.cpp
+++ b/pcbnew/board_connected_item.cpp
@@ -34,7 +34,7 @@
 #include <class_board.h>
 #include <class_board_item.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 BOARD_CONNECTED_ITEM::BOARD_CONNECTED_ITEM( BOARD_ITEM* aParent, KICAD_T idtype ) :
     BOARD_ITEM( aParent, idtype ), m_netinfo( &NETINFO_LIST::ORPHANED_ITEM )
diff --git a/pcbnew/board_netlist_updater.cpp b/pcbnew/board_netlist_updater.cpp
index 16e7acb200..8e09426133 100644
--- a/pcbnew/board_netlist_updater.cpp
+++ b/pcbnew/board_netlist_updater.cpp
@@ -41,7 +41,7 @@
 #include <class_zone.h>
 
 #include <pcb_netlist.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <reporter.h>
 
 #include <board_netlist_updater.h>
diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp
index 32534129f9..db6dceec1b 100644
--- a/pcbnew/class_board.cpp
+++ b/pcbnew/class_board.cpp
@@ -58,7 +58,7 @@
 #include <class_pcb_text.h>
 #include <class_pcb_target.h>
 #include <class_dimension.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 
 /**
diff --git a/pcbnew/connectivity/CMakeLists.txt b/pcbnew/connectivity/CMakeLists.txt
new file mode 100644
index 0000000000..6ab757d6bf
--- /dev/null
+++ b/pcbnew/connectivity/CMakeLists.txt
@@ -0,0 +1,16 @@
+include_directories( BEFORE ${INC_BEFORE} )
+
+include_directories(
+    ./
+    ../
+    ../../include
+    ../../polygon
+    ${INC_AFTER}
+)
+
+set( PCBNEW_CONN_SRCS
+    connectivity_algo.cpp
+    connectivity_data.cpp
+)
+
+add_library( connectivity STATIC ${PCBNEW_CONN_SRCS} )
diff --git a/pcbnew/connectivity_algo.cpp b/pcbnew/connectivity/connectivity_algo.cpp
similarity index 99%
rename from pcbnew/connectivity_algo.cpp
rename to pcbnew/connectivity/connectivity_algo.cpp
index bb53146d79..bb4a5e198b 100644
--- a/pcbnew/connectivity_algo.cpp
+++ b/pcbnew/connectivity/connectivity_algo.cpp
@@ -22,7 +22,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
  */
 
-#include <connectivity_algo.h>
+#include <connectivity/connectivity_algo.h>
 #include <widgets/progress_reporter.h>
 #include <geometry/geometry_utils.h>
 
diff --git a/pcbnew/connectivity_algo.h b/pcbnew/connectivity/connectivity_algo.h
similarity index 99%
rename from pcbnew/connectivity_algo.h
rename to pcbnew/connectivity/connectivity_algo.h
index 0eee1e7bf5..626c4d6659 100644
--- a/pcbnew/connectivity_algo.h
+++ b/pcbnew/connectivity/connectivity_algo.h
@@ -43,8 +43,8 @@
 #include <deque>
 #include <intrusive_list.h>
 
-#include <connectivity_rtree.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_rtree.h>
+#include <connectivity/connectivity_data.h>
 
 class CN_ITEM;
 class CN_CONNECTIVITY_ALGO_IMPL;
diff --git a/pcbnew/connectivity_data.cpp b/pcbnew/connectivity/connectivity_data.cpp
similarity index 99%
rename from pcbnew/connectivity_data.cpp
rename to pcbnew/connectivity/connectivity_data.cpp
index 497445870b..3e26a27ab1 100644
--- a/pcbnew/connectivity_data.cpp
+++ b/pcbnew/connectivity/connectivity_data.cpp
@@ -29,8 +29,8 @@
 #include <thread>
 #include <algorithm>
 
-#include <connectivity_data.h>
-#include <connectivity_algo.h>
+#include <connectivity/connectivity_data.h>
+#include <connectivity/connectivity_algo.h>
 #include <ratsnest_data.h>
 
 CONNECTIVITY_DATA::CONNECTIVITY_DATA()
diff --git a/pcbnew/connectivity_data.h b/pcbnew/connectivity/connectivity_data.h
similarity index 100%
rename from pcbnew/connectivity_data.h
rename to pcbnew/connectivity/connectivity_data.h
diff --git a/pcbnew/connectivity_rtree.h b/pcbnew/connectivity/connectivity_rtree.h
similarity index 100%
rename from pcbnew/connectivity_rtree.h
rename to pcbnew/connectivity/connectivity_rtree.h
diff --git a/pcbnew/deltrack.cpp b/pcbnew/deltrack.cpp
index 0a9c3a58a7..2d6a3e6e9d 100644
--- a/pcbnew/deltrack.cpp
+++ b/pcbnew/deltrack.cpp
@@ -33,7 +33,7 @@
 #include <confirm.h>
 #include <pcb_edit_frame.h>
 #include <macros.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <class_board.h>
 #include <class_track.h>
diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp
index 4a024e5096..dbd99d66be 100644
--- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp
+++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp
@@ -26,7 +26,7 @@
 #include <pcb_edit_frame.h>
 #include <class_drawpanel.h>
 #include <class_board.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <view/view.h>
 #include <pcb_layer_box_selector.h>
 
diff --git a/pcbnew/dialogs/dialog_netlist.cpp b/pcbnew/dialogs/dialog_netlist.cpp
index 2dcb0de3f7..feae047a4b 100644
--- a/pcbnew/dialogs/dialog_netlist.cpp
+++ b/pcbnew/dialogs/dialog_netlist.cpp
@@ -43,7 +43,7 @@
 #include <board_design_settings.h>
 #include <class_board.h>
 #include <class_module.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <wildcards_and_files_ext.h>
 
 #include <dialog_netlist.h>
diff --git a/pcbnew/dialogs/dialog_select_net_from_list.cpp b/pcbnew/dialogs/dialog_select_net_from_list.cpp
index 43e135b8e8..1dc8297b6d 100644
--- a/pcbnew/dialogs/dialog_select_net_from_list.cpp
+++ b/pcbnew/dialogs/dialog_select_net_from_list.cpp
@@ -40,7 +40,7 @@
 #include <view/view.h>
 #include <view/view_controls.h>
 #include <pcb_painter.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 class DIALOG_SELECT_NET_FROM_LIST: public DIALOG_SELECT_NET_FROM_LIST_BASE
 {
diff --git a/pcbnew/dialogs/dialog_track_via_properties.cpp b/pcbnew/dialogs/dialog_track_via_properties.cpp
index ccbda7a9ca..fde50a0982 100644
--- a/pcbnew/dialogs/dialog_track_via_properties.cpp
+++ b/pcbnew/dialogs/dialog_track_via_properties.cpp
@@ -29,7 +29,7 @@
 #include <class_track.h>
 #include <pcb_edit_frame.h>
 #include <confirm.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <class_module.h>
 #include <widgets/net_selector.h>
 #include <board_commit.h>
diff --git a/pcbnew/dragsegm.cpp b/pcbnew/dragsegm.cpp
index 715207a314..5a5b25d3ba 100644
--- a/pcbnew/dragsegm.cpp
+++ b/pcbnew/dragsegm.cpp
@@ -41,7 +41,7 @@
 
 #include <class_module.h>
 #include <class_board.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 /* a list of DRAG_SEGM_PICKER items used to move or drag tracks */
 std::vector<DRAG_SEGM_PICKER> g_DragSegmentList;
diff --git a/pcbnew/drc.cpp b/pcbnew/drc.cpp
index 75fb5f495a..daddb62a53 100644
--- a/pcbnew/drc.cpp
+++ b/pcbnew/drc.cpp
@@ -43,8 +43,8 @@
 #include <geometry/seg.h>
 #include <math_for_graphics.h>
 #include <geometry/geometry_utils.h>
-#include <connectivity_data.h>
-#include <connectivity_algo.h>
+#include <connectivity/connectivity_data.h>
+#include <connectivity/connectivity_algo.h>
 
 #include <tool/tool_manager.h>
 #include <tools/pcb_actions.h>
diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp
index ae5622a3b5..b5cfa7eb8f 100644
--- a/pcbnew/edit.cpp
+++ b/pcbnew/edit.cpp
@@ -53,7 +53,7 @@
 #include <dialog_drc.h>
 #include <invoke_pcb_dialog.h>
 #include <array_creator.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <zone_filler.h>
 
diff --git a/pcbnew/editrack-part2.cpp b/pcbnew/editrack-part2.cpp
index 714e6f86d7..69ecbd6eb6 100644
--- a/pcbnew/editrack-part2.cpp
+++ b/pcbnew/editrack-part2.cpp
@@ -43,7 +43,7 @@
 #include <pcbnew.h>
 #include <drc.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 
 bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
diff --git a/pcbnew/editrack.cpp b/pcbnew/editrack.cpp
index a62ca7e4ef..2e533dbf6f 100644
--- a/pcbnew/editrack.cpp
+++ b/pcbnew/editrack.cpp
@@ -40,7 +40,7 @@
 #include <class_board.h>
 #include <class_track.h>
 #include <class_zone.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 
 static void Abort_Create_Track( EDA_DRAW_PANEL* panel, wxDC* DC );
diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp
index 2a98123c89..ddbdf60c79 100644
--- a/pcbnew/kicad_plugin.cpp
+++ b/pcbnew/kicad_plugin.cpp
@@ -50,7 +50,7 @@
 #include <wx/wfstream.h>
 #include <boost/ptr_container/ptr_map.hpp>
 #include <memory.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 using namespace PCB_KEYS_T;
 
diff --git a/pcbnew/pcb_draw_panel_gal.cpp b/pcbnew/pcb_draw_panel_gal.cpp
index b99e9f0d15..b7a17389e7 100644
--- a/pcbnew/pcb_draw_panel_gal.cpp
+++ b/pcbnew/pcb_draw_panel_gal.cpp
@@ -29,7 +29,7 @@
 #include <worksheet_viewitem.h>
 #include <ratsnest_viewitem.h>
 #include <ratsnest_data.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <colors_design_settings.h>
 #include <class_board.h>
diff --git a/pcbnew/pcb_edit_frame.cpp b/pcbnew/pcb_edit_frame.cpp
index f80e78eb41..bee40adabe 100644
--- a/pcbnew/pcb_edit_frame.cpp
+++ b/pcbnew/pcb_edit_frame.cpp
@@ -60,7 +60,7 @@
 #include <class_board.h>
 #include <class_module.h>
 #include <worksheet_viewitem.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <ratsnest_viewitem.h>
 #include <wildcards_and_files_ext.h>
 #include <kicad_string.h>
diff --git a/pcbnew/pcb_footprint_edit_utils.cpp b/pcbnew/pcb_footprint_edit_utils.cpp
index e8000ed0b9..ad2dce72f3 100644
--- a/pcbnew/pcb_footprint_edit_utils.cpp
+++ b/pcbnew/pcb_footprint_edit_utils.cpp
@@ -43,7 +43,7 @@
 #include <drag.h>
 #include <dialog_get_footprint_by_name.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 static void MoveFootprint( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
                            const wxPoint& aPosition, bool aErase );
diff --git a/pcbnew/ratsnest.cpp b/pcbnew/ratsnest.cpp
index 4ddfa0ea89..8ca745c176 100644
--- a/pcbnew/ratsnest.cpp
+++ b/pcbnew/ratsnest.cpp
@@ -40,7 +40,6 @@
 
 #include <pcbnew.h>
 
-#include <connectivity_data.h>
 #include <ratsnest_data.h>
 
 /**
diff --git a/pcbnew/ratsnest_data.cpp b/pcbnew/ratsnest_data.cpp
index d869a498d2..978e8b6ab5 100644
--- a/pcbnew/ratsnest_data.cpp
+++ b/pcbnew/ratsnest_data.cpp
@@ -40,8 +40,6 @@ using namespace std::placeholders;
 #include <algorithm>
 #include <limits>
 
-#include <connectivity_algo.h>
-
 static uint64_t getDistance( const CN_ANCHOR_PTR& aNode1, const CN_ANCHOR_PTR& aNode2 )
 {
     double  dx = ( aNode1->Pos().x - aNode2->Pos().x );
diff --git a/pcbnew/ratsnest_data.h b/pcbnew/ratsnest_data.h
index 3b22c05c84..8d6ef5cfe5 100644
--- a/pcbnew/ratsnest_data.h
+++ b/pcbnew/ratsnest_data.h
@@ -40,7 +40,7 @@
 #include <ttl/halfedge/hetriang.h>
 #include <ttl/halfedge/hetraits.h>
 
-#include <connectivity_algo.h>
+#include <connectivity/connectivity_algo.h>
 
 class BOARD;
 class BOARD_ITEM;
diff --git a/pcbnew/ratsnest_viewitem.cpp b/pcbnew/ratsnest_viewitem.cpp
index a031fcf5c1..2a1216eb87 100644
--- a/pcbnew/ratsnest_viewitem.cpp
+++ b/pcbnew/ratsnest_viewitem.cpp
@@ -29,7 +29,6 @@
 
 #include <ratsnest_viewitem.h>
 #include <ratsnest_data.h>
-#include <connectivity_data.h>
 #include <gal/graphics_abstraction_layer.h>
 #include <pcb_painter.h>
 #include <layers_id_colors_and_visibility.h>
diff --git a/pcbnew/specctra_import_export/specctra_import.cpp b/pcbnew/specctra_import_export/specctra_import.cpp
index bde0d58ed8..02b9280b5c 100644
--- a/pcbnew/specctra_import_export/specctra_import.cpp
+++ b/pcbnew/specctra_import_export/specctra_import.cpp
@@ -44,7 +44,7 @@
 #include <class_track.h>
 #include <class_zone.h>
 #include <class_drawsegment.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <view/view.h>
 
 #include "specctra.h"
diff --git a/pcbnew/swig/connectivity.i b/pcbnew/swig/connectivity.i
index 69b8f4ddb0..b04129e944 100644
--- a/pcbnew/swig/connectivity.i
+++ b/pcbnew/swig/connectivity.i
@@ -28,12 +28,12 @@
 // this shared_ptr line has to be before include connectivity_data.h.
 %shared_ptr(CONNECTIVITY_DATA)
 
-%include connectivity_data.h
+%include connectivity/connectivity_data.h
 
  
 
 
 %{
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 %}
 
diff --git a/pcbnew/tools/edit_tool.cpp b/pcbnew/tools/edit_tool.cpp
index e7d322267c..7526555145 100644
--- a/pcbnew/tools/edit_tool.cpp
+++ b/pcbnew/tools/edit_tool.cpp
@@ -42,7 +42,7 @@
 #include <view/view_controls.h>
 #include <view/view.h>
 #include <gal/graphics_abstraction_layer.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <confirm.h>
 #include <bitmaps.h>
 #include <hotkeys.h>
diff --git a/pcbnew/tools/pcb_editor_control.cpp b/pcbnew/tools/pcb_editor_control.cpp
index ac73505f6c..c86b9423c8 100644
--- a/pcbnew/tools/pcb_editor_control.cpp
+++ b/pcbnew/tools/pcb_editor_control.cpp
@@ -45,7 +45,7 @@
 #include <pcb_draw_panel_gal.h>
 #include <class_module.h>
 #include <class_pcb_target.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <collectors.h>
 #include <zones_functions_for_undo_redo.h>
 #include <board_commit.h>
diff --git a/pcbnew/tools/pcbnew_control.cpp b/pcbnew/tools/pcbnew_control.cpp
index 829fec683d..e4045d183f 100644
--- a/pcbnew/tools/pcbnew_control.cpp
+++ b/pcbnew/tools/pcbnew_control.cpp
@@ -48,7 +48,7 @@
 #include <pcbnew_id.h>
 #include <pcb_edit_frame.h>
 #include <pcb_draw_panel_gal.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <tool/tool_manager.h>
 #include <gal/graphics_abstraction_layer.h>
 #include <view/view_controls.h>
diff --git a/pcbnew/tools/point_editor.cpp b/pcbnew/tools/point_editor.cpp
index 0f4f49bebb..1b2962affc 100644
--- a/pcbnew/tools/point_editor.cpp
+++ b/pcbnew/tools/point_editor.cpp
@@ -45,7 +45,7 @@ using namespace std::placeholders;
 #include <class_zone.h>
 #include <class_board.h>
 #include <class_module.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include "zone_filler.h"
 
diff --git a/pcbnew/tools/selection.cpp b/pcbnew/tools/selection.cpp
index 12d3d175f8..b883232059 100644
--- a/pcbnew/tools/selection.cpp
+++ b/pcbnew/tools/selection.cpp
@@ -49,7 +49,7 @@ using namespace std::placeholders;
 
 #include <tool/tool_event.h>
 #include <tool/tool_manager.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include "selection_tool.h"
 #include "pcb_bright_box.h"
diff --git a/pcbnew/tools/selection_tool.cpp b/pcbnew/tools/selection_tool.cpp
index 01233e18cb..8d84b01d60 100644
--- a/pcbnew/tools/selection_tool.cpp
+++ b/pcbnew/tools/selection_tool.cpp
@@ -53,7 +53,7 @@ using namespace std::placeholders;
 #include <tool/tool_event.h>
 #include <tool/tool_manager.h>
 #include <router/router_tool.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <footprint_viewer_frame.h>
 #include "tool_event_utils.h"
 
diff --git a/pcbnew/tools/zone_filler_tool.cpp b/pcbnew/tools/zone_filler_tool.cpp
index b42c58700c..cde86c6aef 100644
--- a/pcbnew/tools/zone_filler_tool.cpp
+++ b/pcbnew/tools/zone_filler_tool.cpp
@@ -28,7 +28,7 @@
 
 #include <class_zone.h>
 #include <class_module.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <board_commit.h>
 
 #include <widgets/progress_reporter.h>
diff --git a/pcbnew/tracks_cleaner.cpp b/pcbnew/tracks_cleaner.cpp
index f905ea024c..54fa014028 100644
--- a/pcbnew/tracks_cleaner.cpp
+++ b/pcbnew/tracks_cleaner.cpp
@@ -37,8 +37,8 @@
 #include <class_track.h>
 #include <dialog_cleaning_options.h>
 #include <board_commit.h>
-#include <connectivity_data.h>
-#include <connectivity_algo.h>
+#include <connectivity/connectivity_algo.h>
+#include <connectivity/connectivity_data.h>
 
 #include <tool/tool_manager.h>
 #include <tools/pcb_actions.h>
diff --git a/pcbnew/undo_redo.cpp b/pcbnew/undo_redo.cpp
index 06930609cb..6123ceb0da 100644
--- a/pcbnew/undo_redo.cpp
+++ b/pcbnew/undo_redo.cpp
@@ -46,7 +46,7 @@ using namespace std::placeholders;
 #include <class_edge_mod.h>
 #include <origin_viewitem.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <tools/selection_tool.h>
 #include <tools/pcbnew_control.h>
diff --git a/pcbnew/zone_filler.cpp b/pcbnew/zone_filler.cpp
index 7845f7c2b2..b4b386f854 100644
--- a/pcbnew/zone_filler.cpp
+++ b/pcbnew/zone_filler.cpp
@@ -36,7 +36,7 @@
 #include <class_pcb_text.h>
 #include <class_pcb_target.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 #include <board_commit.h>
 
 #include <widgets/progress_reporter.h>
diff --git a/pcbnew/zones_by_polygon.cpp b/pcbnew/zones_by_polygon.cpp
index e0b3edaff6..894b7892ea 100644
--- a/pcbnew/zones_by_polygon.cpp
+++ b/pcbnew/zones_by_polygon.cpp
@@ -45,7 +45,7 @@
 #include <protos.h>
 #include <zones_functions_for_undo_redo.h>
 #include <drc.h>
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <widgets/progress_reporter.h>
 
diff --git a/pcbnew/zones_by_polygon_fill_functions.cpp b/pcbnew/zones_by_polygon_fill_functions.cpp
index 2e609d9d63..dfc1e0e0b8 100644
--- a/pcbnew/zones_by_polygon_fill_functions.cpp
+++ b/pcbnew/zones_by_polygon_fill_functions.cpp
@@ -46,7 +46,6 @@
 #include <pcbnew.h>
 #include <zones.h>
 
-#include <connectivity_data.h>
 #include <board_commit.h>
 
 #include <widgets/progress_reporter.h>
diff --git a/qa/qa_utils/pcb_test_frame.cpp b/qa/qa_utils/pcb_test_frame.cpp
index 8d47a39243..6235d67ab1 100644
--- a/qa/qa_utils/pcb_test_frame.cpp
+++ b/qa/qa_utils/pcb_test_frame.cpp
@@ -46,7 +46,7 @@
 #include <pcb_painter.h>
 #include <pcb_edit_frame.h>
 
-#include <connectivity_data.h>
+#include <connectivity/connectivity_data.h>
 
 #include <io_mgr.h>
 #include <set>