diff --git a/common/drc_rules.keywords b/common/drc_rules.keywords
index 8075c026c1..9ff5b10de3 100644
--- a/common/drc_rules.keywords
+++ b/common/drc_rules.keywords
@@ -1,17 +1,29 @@
+annulus_width
+board_edge
+buried_via
+clearance
 condition
+constraint
+disallow
+footprint
+graphic
+hole
+match_area
+match_layer
+match_netclass
+match_type
 max
+micro_via
 min
+npth
 opt
-allow
+pad
+pth
 rule
+selector
+text
+track
+track_width
 version
-name
-priority
-expression
-enable
-severity
-type
-error
-warning
-info
-ignore
\ No newline at end of file
+via
+zone
diff --git a/pcbnew/class_drawsegment.h b/pcbnew/class_drawsegment.h
index 0a2caf3d8d..01f0e45ab5 100644
--- a/pcbnew/class_drawsegment.h
+++ b/pcbnew/class_drawsegment.h
@@ -150,10 +150,11 @@ public:
     // m_Start, m_End, and m_Angle.
     // No Set...() function for these attributes.
 
-    const wxPoint GetCenter() const override;
-    const wxPoint& GetArcStart() const      { return m_End; }
-    const wxPoint GetArcEnd() const;
-    const wxPoint GetArcMid() const;
+    wxPoint GetCenter() const override;
+    wxPoint GetArcStart() const      { return m_End; }
+    wxPoint GetArcEnd() const;
+    wxPoint GetArcMid() const;
+    void GetRectCorners( std::vector<wxPoint>* pts ) const;
 
     /**
      * function GetArcAngleStart()
@@ -185,6 +186,11 @@ public:
      */
     void SetCenter( const wxPoint& aCenterPoint ) { m_Start = aCenterPoint; }
 
+    const wxPoint GetFocusPosition() const override
+    {
+        return GetCenter();
+    }
+
     /**
      * Function GetParentModule
      * returns a pointer to the parent module, or NULL if DRAWSEGMENT does not
diff --git a/pcbnew/drc/drc_provider.h b/pcbnew/drc/drc_provider.h
index f92b44d4c1..8a67886120 100644
--- a/pcbnew/drc/drc_provider.h
+++ b/pcbnew/drc/drc_provider.h
@@ -29,6 +29,7 @@
 #include <class_marker_pcb.h>
 #include <pcb_base_frame.h>
 #include <drc/drc.h>
+#include <drc/drc_item.h>
 #include <widgets/ui_common.h>
 #include <functional>