diff --git a/demo/CheckListCtrlMixin.py b/demo/CheckListCtrlMixin.py
index 8d5a46d64a..207587ce49 100644
--- a/demo/CheckListCtrlMixin.py
+++ b/demo/CheckListCtrlMixin.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python
 
-import sys
 import wx
 from wx.lib.mixins.listctrl import CheckListCtrlMixin
 
@@ -46,8 +45,8 @@ def __init__(self, parent, log):
         self.list.InsertColumn(1, "Title", wx.LIST_FORMAT_RIGHT)
         self.list.InsertColumn(2, "Genre")
 
-        for key, data in musicdata.iteritems():
-            index = self.list.InsertStringItem(sys.maxint, data[0])
+        for key, data in musicdata.items():
+            index = self.list.InsertStringItem(self.list.GetItemCount(), data[0])
             self.list.SetItem(index, 1, data[1])
             self.list.SetItem(index, 2, data[2])
             self.list.SetItemData(index, key)
diff --git a/demo/DVC_ListCtrl.py b/demo/DVC_ListCtrl.py
index 0acaa80f1d..6c6be9a2dd 100644
--- a/demo/DVC_ListCtrl.py
+++ b/demo/DVC_ListCtrl.py
@@ -7,9 +7,7 @@
 
 # Reuse the music data in the ListCtrl sample
 import ListCtrl
-musicdata = ListCtrl.musicdata.items()
-musicdata.sort()
-musicdata = [[str(k)] + list(v) for k,v in musicdata]
+musicdata = [[str(k)] + list(v) for k,v in sorted(ListCtrl.musicdata.items())]
 
 
 class TestPanel(wx.Panel):
diff --git a/demo/GridBagSizer.py b/demo/GridBagSizer.py
index 73b22a2906..475791ec17 100644
--- a/demo/GridBagSizer.py
+++ b/demo/GridBagSizer.py
@@ -116,9 +116,9 @@ def OnLeftDown(self, evt):
         pt = evt.GetPosition()
         item = self.gbs.FindItemAtPoint(pt)
         if item is None:
-            print("no item at", `pt`)
+            print("no item at", pt)
         else:
-            print("item found: ", `item.GetPos()`, "--", `item.GetSpan()`)
+            print("item found: ", item.GetPos(), "--", item.GetSpan())
 
 
 #---------------------------------------------------------------------------
diff --git a/demo/ListCtrl.py b/demo/ListCtrl.py
index 757ff49d97..29479d3357 100644
--- a/demo/ListCtrl.py
+++ b/demo/ListCtrl.py
@@ -183,7 +183,7 @@ def PopulateList(self):
 
         items = musicdata.items()
         for key, data in items:
-            index = self.list.InsertItem(sys.maxsize, data[0], self.idx1)
+            index = self.list.InsertItem(self.list.GetItemCount(), data[0], self.idx1)
             self.list.SetItem(index, 1, data[1])
             self.list.SetItem(index, 2, data[2])
             self.list.SetItemData(index, key)
diff --git a/demo/ListCtrl_edit.py b/demo/ListCtrl_edit.py
index c8b5c11dec..6db8a6c67c 100644
--- a/demo/ListCtrl_edit.py
+++ b/demo/ListCtrl_edit.py
@@ -51,7 +51,7 @@ def Populate(self):
 
         items = listctrldata.items()
         for key, data in items:
-            index = self.InsertItem(sys.maxint, data[0])
+            index = self.InsertItem(self.GetItemCount(), data[0])
             self.SetItem(index, 1, data[1])
             self.SetItem(index, 2, data[2])
             self.SetItemData(index, key)
diff --git a/demo/MediaCtrl.py b/demo/MediaCtrl.py
index b04107ce5f..4f542570ec 100644
--- a/demo/MediaCtrl.py
+++ b/demo/MediaCtrl.py
@@ -13,7 +13,7 @@ class StaticText(wx.StaticText):
     updated very frequently otherwise.
     """
     def SetLabel(self, label):
-        if label <> self.GetLabel():
+        if label != self.GetLabel():
             wx.StaticText.SetLabel(self, label)
 
 #----------------------------------------------------------------------
diff --git a/demo/Sizers.py b/demo/Sizers.py
index c13f4d06cf..19daba1e8e 100644
--- a/demo/Sizers.py
+++ b/demo/Sizers.py
@@ -283,13 +283,13 @@ def makeGrid1(win):
 #----------------------------------------------------------------------
 
 def makeGrid2(win):
-    gs = wx.GridSizer(3, 3)  # rows, cols, vgap, hgap
+    gs = wx.GridSizer(rows=3, cols=3, vgap=0, hgap=0)
 
     box = wx.BoxSizer(wx.VERTICAL)
     box.Add(SampleWindow(win, 'A'), 0, wx.EXPAND)
     box.Add(SampleWindow(win, 'B'), 1, wx.EXPAND)
 
-    gs2 = wx.GridSizer(2,2, 4, 4)
+    gs2 = wx.GridSizer(2, 2, 4, 4)
     gs2.AddMany([ (SampleWindow(win, 'C'), 0, wx.EXPAND),
                   (SampleWindow(win, 'E'), 0, wx.EXPAND),
                   (SampleWindow(win, 'F'), 0, wx.EXPAND),
diff --git a/demo/TablePrint.py b/demo/TablePrint.py
index 2be3db08ed..7331f9961b 100644
--- a/demo/TablePrint.py
+++ b/demo/TablePrint.py
@@ -24,10 +24,8 @@ def __init__(self, parent, log, frame):
 
         box = wx.BoxSizer(wx.VERTICAL)
         box.Add((20, 30))
-        keys = buttonDefs.keys()
-        keys.sort()
 
-        for k in keys:
+        for k in sorted(buttonDefs.keys()):
             text = buttonDefs[k][1]
             btn = wx.Button(self, k, text)
             box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 15)
diff --git a/demo/Throbber.py b/demo/Throbber.py
index ee80dae4ca..2199373ffa 100644
--- a/demo/Throbber.py
+++ b/demo/Throbber.py
@@ -109,7 +109,7 @@ def __init__(self, parent, log):
             )
 
         sizer.Add(
-            wx.StaticText(self, -1, 'with custom & manual sequences'),
+            wx.StaticText(self, -1, 'with custom and manual sequences'),
             (row, 1), flag = wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT
             )
 
diff --git a/demo/Toolbook.py b/demo/Toolbook.py
index 96e1505b2b..1a65ecbe1a 100644
--- a/demo/Toolbook.py
+++ b/demo/Toolbook.py
@@ -45,7 +45,7 @@ def __init__(self, parent, id, log):
         first = True
         for colour in colourList:
             win = self.makeColorPanel(colour)
-            self.AddPage(win, colour, imageId=imageIdGenerator.next())
+            self.AddPage(win, colour, imageId=next(imageIdGenerator))
             if first:
                 st = wx.StaticText(win.win, -1,
                           "You can put nearly any type of window here,\n"
diff --git a/demo/Treebook.py b/demo/Treebook.py
index c35bc44ed0..125742be43 100644
--- a/demo/Treebook.py
+++ b/demo/Treebook.py
@@ -45,7 +45,7 @@ def __init__(self, parent, id, log):
         first = True
         for colour in colourList:
             win = self.makeColorPanel(colour)
-            self.AddPage(win, colour, imageId=imageIdGenerator.next())
+            self.AddPage(win, colour, imageId=next(imageIdGenerator))
             if first:
                 st = wx.StaticText(win.win, -1,
                           "You can put nearly any type of window here,\n"
@@ -56,7 +56,7 @@ def __init__(self, parent, id, log):
 
             win = self.makeColorPanel(colour)
             st = wx.StaticText(win.win, -1, "this is a sub-page", (10,10))
-            self.AddSubPage(win, 'a sub-page', imageId=imageIdGenerator.next())
+            self.AddSubPage(win, 'a sub-page', imageId=next(imageIdGenerator))
 
         self.Bind(wx.EVT_TREEBOOK_PAGE_CHANGED, self.OnPageChanged)
         self.Bind(wx.EVT_TREEBOOK_PAGE_CHANGING, self.OnPageChanging)
diff --git a/demo/VListBox.py b/demo/VListBox.py
index fbc0affff7..aeb58453d5 100644
--- a/demo/VListBox.py
+++ b/demo/VListBox.py
@@ -129,7 +129,9 @@ def OnCellMouseHover(self, event):
         self.log.WriteText('OnCellMouseHover: %s\n' % (cell))
         if isinstance(cell, html.HtmlWordCell):
             sel = html.HtmlSelection()
-            self.log.WriteText('     %s\n' % cell.ConvertToText(sel))
+            # BUG: ConvertToText() doesn't exist yet.
+            # self.log.WriteText('     %s\n' % cell.ConvertToText(sel))
+            self.log.WriteText('     %s\n' % sel)
         event.Skip()
 
     def OnCellClicked(self, event):
@@ -137,7 +139,9 @@ def OnCellClicked(self, event):
         self.log.WriteText('OnCellClicked: %s\n' % (cell))
         if isinstance(cell, html.HtmlWordCell):
             sel = html.HtmlSelection()
-            self.log.WriteText('     %s\n' % cell.ConvertToText(sel))
+            # BUG: ConvertToText() doesn't exist yet.
+            # self.log.WriteText('     %s\n' % cell.ConvertToText(sel))
+            self.log.WriteText('     %s\n' % sel)
         event.Skip()
 
 #----------------------------------------------------------------------
diff --git a/demo/Validator.py b/demo/Validator.py
index 5cc5e6ceb9..211b81688e 100644
--- a/demo/Validator.py
+++ b/demo/Validator.py
@@ -41,7 +41,7 @@ def OnChar(self, event):
             event.Skip()
             return
 
-        if self.flag == ALPHA_ONLY and chr(key) in string.letters:
+        if self.flag == ALPHA_ONLY and chr(key) in string.ascii_letters:
             event.Skip()
             return
 
diff --git a/demo/agw/AUI.py b/demo/agw/AUI.py
index 8a18ccacd3..1d530fe872 100644
--- a/demo/agw/AUI.py
+++ b/demo/agw/AUI.py
@@ -441,7 +441,7 @@ def __init__(self, parent, frame):
         s1.Add(wx.StaticText(self, -1, "Pane Border Size:"))
         s1.Add(self._border_size)
         s1.Add((1, 1), 1, wx.EXPAND)
-        s1.SetItemMinSize(1, (180, 20))
+        s1.SetItemMinSize(index=1, size=(180, 20))
 
         s2 = wx.BoxSizer(wx.HORIZONTAL)
         self._sash_size = wx.SpinCtrl(self, ID_SashSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE), wx.DefaultPosition,
@@ -450,7 +450,7 @@ def __init__(self, parent, frame):
         s2.Add(wx.StaticText(self, -1, "Sash Size:"))
         s2.Add(self._sash_size)
         s2.Add((1, 1), 1, wx.EXPAND)
-        s2.SetItemMinSize(1, (180, 20))
+        s2.SetItemMinSize(index=1, size=(180, 20))
 
         s3 = wx.BoxSizer(wx.HORIZONTAL)
         self._caption_size = wx.SpinCtrl(self, ID_CaptionSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE),
@@ -459,7 +459,7 @@ def __init__(self, parent, frame):
         s3.Add(wx.StaticText(self, -1, "Caption Size:"))
         s3.Add(self._caption_size)
         s3.Add((1, 1), 1, wx.EXPAND)
-        s3.SetItemMinSize(1, (180, 20))
+        s3.SetItemMinSize(index=1, size=(180, 20))
 
         b = self.CreateColourBitmap(wx.BLACK)
 
@@ -469,7 +469,7 @@ def __init__(self, parent, frame):
         s4.Add(wx.StaticText(self, -1, "Background Colour:"))
         s4.Add(self._background_colour)
         s4.Add((1, 1), 1, wx.EXPAND)
-        s4.SetItemMinSize(1, (180, 20))
+        s4.SetItemMinSize(index=1, size=(180, 20))
 
         s5 = wx.BoxSizer(wx.HORIZONTAL)
         self._sash_colour = wx.BitmapButton(self, ID_SashColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -477,7 +477,7 @@ def __init__(self, parent, frame):
         s5.Add(wx.StaticText(self, -1, "Sash Colour:"))
         s5.Add(self._sash_colour)
         s5.Add((1, 1), 1, wx.EXPAND)
-        s5.SetItemMinSize(1, (180, 20))
+        s5.SetItemMinSize(index=1, size=(180, 20))
 
         s6 = wx.BoxSizer(wx.HORIZONTAL)
         self._inactive_caption_colour = wx.BitmapButton(self, ID_InactiveCaptionColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -485,7 +485,7 @@ def __init__(self, parent, frame):
         s6.Add(wx.StaticText(self, -1, "Normal Caption:"))
         s6.Add(self._inactive_caption_colour)
         s6.Add((1, 1), 1, wx.EXPAND)
-        s6.SetItemMinSize(1, (180, 20))
+        s6.SetItemMinSize(index=1, size=(180, 20))
 
         s7 = wx.BoxSizer(wx.HORIZONTAL)
         self._inactive_caption_gradient_colour = wx.BitmapButton(self, ID_InactiveCaptionGradientColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -493,7 +493,7 @@ def __init__(self, parent, frame):
         s7.Add(wx.StaticText(self, -1, "Normal Caption Gradient:"))
         s7.Add(self._inactive_caption_gradient_colour)
         s7.Add((1, 1), 1, wx.EXPAND)
-        s7.SetItemMinSize(1, (180, 20))
+        s7.SetItemMinSize(index=1, size=(180, 20))
 
         s8 = wx.BoxSizer(wx.HORIZONTAL)
         self._inactive_caption_text_colour = wx.BitmapButton(self, ID_InactiveCaptionTextColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -501,7 +501,7 @@ def __init__(self, parent, frame):
         s8.Add(wx.StaticText(self, -1, "Normal Caption Text:"))
         s8.Add(self._inactive_caption_text_colour)
         s8.Add((1, 1), 1, wx.EXPAND)
-        s8.SetItemMinSize(1, (180, 20))
+        s8.SetItemMinSize(index=1, size=(180, 20))
 
         s9 = wx.BoxSizer(wx.HORIZONTAL)
         self._active_caption_colour = wx.BitmapButton(self, ID_ActiveCaptionColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -509,7 +509,7 @@ def __init__(self, parent, frame):
         s9.Add(wx.StaticText(self, -1, "Active Caption:"))
         s9.Add(self._active_caption_colour)
         s9.Add((1, 1), 1, wx.EXPAND)
-        s9.SetItemMinSize(1, (180, 20))
+        s9.SetItemMinSize(index=1, size=(180, 20))
 
         s10 = wx.BoxSizer(wx.HORIZONTAL)
         self._active_caption_gradient_colour = wx.BitmapButton(self, ID_ActiveCaptionGradientColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -517,7 +517,7 @@ def __init__(self, parent, frame):
         s10.Add(wx.StaticText(self, -1, "Active Caption Gradient:"))
         s10.Add(self._active_caption_gradient_colour)
         s10.Add((1, 1), 1, wx.EXPAND)
-        s10.SetItemMinSize(1, (180, 20))
+        s10.SetItemMinSize(index=1, size=(180, 20))
 
         s11 = wx.BoxSizer(wx.HORIZONTAL)
         self._active_caption_text_colour = wx.BitmapButton(self, ID_ActiveCaptionTextColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -525,7 +525,7 @@ def __init__(self, parent, frame):
         s11.Add(wx.StaticText(self, -1, "Active Caption Text:"))
         s11.Add(self._active_caption_text_colour)
         s11.Add((1, 1), 1, wx.EXPAND)
-        s11.SetItemMinSize(1, (180, 20))
+        s11.SetItemMinSize(index=1, size=(180, 20))
 
         s12 = wx.BoxSizer(wx.HORIZONTAL)
         self._border_colour = wx.BitmapButton(self, ID_BorderColour, b, wx.DefaultPosition, wx.Size(50, 25))
@@ -533,7 +533,7 @@ def __init__(self, parent, frame):
         s12.Add(wx.StaticText(self, -1, "Border Colour:"))
         s12.Add(self._border_colour)
         s12.Add((1, 1), 1, wx.EXPAND)
-        s12.SetItemMinSize(1, (180, 20))
+        s12.SetItemMinSize(index=1, size=(180, 20))
 
         s13 = wx.BoxSizer(wx.HORIZONTAL)
         self._gripper_colour = wx.BitmapButton(self, ID_GripperColour, b, wx.DefaultPosition, wx.Size(50,25))
@@ -541,7 +541,7 @@ def __init__(self, parent, frame):
         s13.Add(wx.StaticText(self, -1, "Gripper Colour:"))
         s13.Add(self._gripper_colour)
         s13.Add((1, 1), 1, wx.EXPAND)
-        s13.SetItemMinSize(1, (180, 20))
+        s13.SetItemMinSize(index=1, size=(180, 20))
 
         s14 = wx.BoxSizer(wx.HORIZONTAL)
         self._sash_grip = wx.CheckBox(self, ID_SashGrip, "", wx.DefaultPosition, wx.Size(50,20))
@@ -549,7 +549,7 @@ def __init__(self, parent, frame):
         s14.Add(wx.StaticText(self, -1, "Draw Sash Grip:"))
         s14.Add(self._sash_grip)
         s14.Add((1, 1), 1, wx.EXPAND)
-        s14.SetItemMinSize(1, (180, 20))
+        s14.SetItemMinSize(index=1, size=(180, 20))
 
         s15 = wx.BoxSizer(wx.HORIZONTAL)
         self._hint_colour = wx.BitmapButton(self, ID_HintColour, b, wx.DefaultPosition, wx.Size(50,25))
@@ -557,7 +557,7 @@ def __init__(self, parent, frame):
         s15.Add(wx.StaticText(self, -1, "Hint Window Colour:"))
         s15.Add(self._hint_colour)
         s15.Add((1, 1), 1, wx.EXPAND)
-        s15.SetItemMinSize(1, (180, 20))
+        s15.SetItemMinSize(index=1, size=(180, 20))
 
         grid_sizer = wx.GridSizer(rows=0, cols=2, vgap=5, hgap=5)
         grid_sizer.SetHGap(5)
diff --git a/wx/lib/analogclock/__init__.py b/wx/lib/analogclock/__init__.py
index 0b9a391a5c..4ba4480f55 100644
--- a/wx/lib/analogclock/__init__.py
+++ b/wx/lib/analogclock/__init__.py
@@ -136,5 +136,5 @@
 
 #----------------------------------------------------------------------
 
-from analogclock import AnalogClock, AnalogClockWindow
-from styles import *
+from .analogclock import AnalogClock, AnalogClockWindow
+from .styles import *
diff --git a/wx/lib/analogclock/analogclock.py b/wx/lib/analogclock/analogclock.py
index 5c883a77d4..ccc1923191 100644
--- a/wx/lib/analogclock/analogclock.py
+++ b/wx/lib/analogclock/analogclock.py
@@ -9,9 +9,9 @@
 
 import wx
 
-from styles import *
-from helpers import Dyer, Face, Hand, HandSet, TickSet, Box
-from setup import Setup
+from .styles import *
+from .helpers import Dyer, Face, Hand, HandSet, TickSet, Box
+from .setup import Setup
 
 #----------------------------------------------------------------------
 
diff --git a/wx/lib/analogclock/helpers.py b/wx/lib/analogclock/helpers.py
index 71acb8d75e..763a7ab841 100644
--- a/wx/lib/analogclock/helpers.py
+++ b/wx/lib/analogclock/helpers.py
@@ -9,7 +9,7 @@
 import math
 import wx
 
-from styles import *
+from .styles import *
 
 #----------------------------------------------------------------------
 
@@ -662,7 +662,7 @@ def RecalcCoords(self, clocksize, centre, scale):
             dc.SetFont(self.font)
             maxsize = size
             for tick in self.ticks.values():
-                maxsize = max(*(dc.GetTextExtent(tick.text) + (maxsize,)))
+                maxsize = max(*(tuple(dc.GetTextExtent(tick.text)) + (maxsize,)))
 
         radius = self.radius = min(clocksize.Get()) / 2. - \
                                self.dyer.width / 2. - \
@@ -941,7 +941,7 @@ def SetTickFont(self, font, target):
         for i, attr in enumerate(["TicksH", "TicksM"]):
             if _targets[i] & target:
                 tick = getattr(self, attr)
-                tick.SetFont(wx.FontFromNativeInfoString(fs))
+                tick.SetFont(wx.Font(fs))
 
 
     def SetIsRotated(self, rotate):
diff --git a/wx/lib/analogclock/setup.py b/wx/lib/analogclock/setup.py
index 04b7b9160e..7cf69664b4 100644
--- a/wx/lib/analogclock/setup.py
+++ b/wx/lib/analogclock/setup.py
@@ -7,10 +7,10 @@
 
 import wx
 
-import styles
-import lib_setup.colourselect as csel
-import lib_setup.fontselect as fsel
-import lib_setup.buttontreectrlpanel as bt
+from . import styles 
+from .lib_setup import colourselect as csel
+from .lib_setup import fontselect as fsel
+from .lib_setup import buttontreectrlpanel as bt
 
 #----------------------------------------------------------------------
 
diff --git a/wx/lib/colourchooser/__init__.py b/wx/lib/colourchooser/__init__.py
index ccce2e3c4c..82125ed0e2 100644
--- a/wx/lib/colourchooser/__init__.py
+++ b/wx/lib/colourchooser/__init__.py
@@ -22,7 +22,7 @@
 # o wxPyColourChooser -> PyColourChooser
 #
 
-from pycolourchooser import *
+from .pycolourchooser import *
 
 # For the American in you
 PyColorChooser = PyColourChooser
diff --git a/wx/lib/colourchooser/pycolourchooser.py b/wx/lib/colourchooser/pycolourchooser.py
index 4947edf48c..e393920ee5 100644
--- a/wx/lib/colourchooser/pycolourchooser.py
+++ b/wx/lib/colourchooser/pycolourchooser.py
@@ -26,14 +26,14 @@
 # Tags:     phoenix-port
 
 import  wx
+import colorsys
 
-import  pycolourbox
-import  pypalette
-import  pycolourslider
-import  colorsys
-import  intl
+from . import pycolourbox
+from . import pypalette
+from . import pycolourslider
+from . import intl
 
-from intl import _ # _
+from .intl import _ # _
 
 class PyColourChooser(wx.Panel):
     """A Pure-Python implementation of the colour chooser dialog.
diff --git a/wx/lib/colourchooser/pycolourslider.py b/wx/lib/colourchooser/pycolourslider.py
index 2e58fcebc8..811a2da760 100644
--- a/wx/lib/colourchooser/pycolourslider.py
+++ b/wx/lib/colourchooser/pycolourslider.py
@@ -27,10 +27,10 @@
 #
 
 import  wx
-
-import  canvas
 import  colorsys
 
+from . import canvas
+
 class PyColourSlider(canvas.Canvas):
     """A Pure-Python Colour Slider
 
diff --git a/wx/lib/colourchooser/pypalette.py b/wx/lib/colourchooser/pypalette.py
index 17fb598046..5d07d081e5 100644
--- a/wx/lib/colourchooser/pypalette.py
+++ b/wx/lib/colourchooser/pypalette.py
@@ -28,10 +28,8 @@
 #
 
 import  wx
-
-import  canvas
 import  colorsys
-
+from . import canvas
 from wx.lib.embeddedimage import PyEmbeddedImage
 
 Image = PyEmbeddedImage(
diff --git a/wx/lib/editor/__init__.py b/wx/lib/editor/__init__.py
index 6eea9d6fd1..dc704004da 100644
--- a/wx/lib/editor/__init__.py
+++ b/wx/lib/editor/__init__.py
@@ -21,4 +21,4 @@
 
 
 # import the main classes into the package namespace.
-from editor    import Editor
+from .editor import Editor
diff --git a/wx/lib/editor/editor.py b/wx/lib/editor/editor.py
index c9c3050290..5b2b5455f2 100644
--- a/wx/lib/editor/editor.py
+++ b/wx/lib/editor/editor.py
@@ -33,8 +33,8 @@
 
 import  wx
 
-import  selection
-import  images
+from . import selection
+from . import images
 
 #----------------------------
 
@@ -162,18 +162,18 @@ def SetCharDimensions(self):
         self.bw, self.bh = self.GetClientSize()
 
         if wx.Platform == "__WXMSW__":
-            self.sh = self.bh / self.fh
-            self.sw = (self.bw / self.fw) - 1
+            self.sh = self.bh // self.fh
+            self.sw = (self.bw // self.fw) - 1
         else:
-            self.sh = self.bh / self.fh
+            self.sh = self.bh // self.fh
             if self.LinesInFile() >= self.sh:
                 self.bw = self.bw - wx.SystemSettings.GetMetric(wx.SYS_VSCROLL_X)
-                self.sw = (self.bw / self.fw) - 1
+                self.sw = (self.bw // self.fw) - 1
 
-            self.sw = (self.bw / self.fw) - 1
+            self.sw = (self.bw // self.fw) - 1
             if self.CalcMaxLineLen() >= self.sw:
                 self.bh = self.bh - wx.SystemSettings.GetMetric(wx.SYS_HSCROLL_Y)
-                self.sh = self.bh / self.fh
+                self.sh = self.bh // self.fh
 
 
     def UpdateView(self, dc = None):
@@ -448,7 +448,7 @@ def HandleRightOfScreen(self, col):
 ##------------------------ mousing functions
 
     def MouseToRow(self, mouseY):
-        row  = self.sy + (mouseY/ self.fh)
+        row  = self.sy + (mouseY // self.fh)
         if self.AboveScreen(row):
             self.HandleAboveScreen(row)
         elif self.BelowScreen(row):
@@ -457,7 +457,7 @@ def MouseToRow(self, mouseY):
             self.cy  = min(row, self.LinesInFile() - 1)
 
     def MouseToCol(self, mouseX):
-        col = self.sx + (mouseX / self.fw)
+        col = self.sx + (mouseX // self.fw)
         if self.LeftOfScreen(col):
             self.HandleLeftOfScreen(col)
         elif self.RightOfScreen(col):