diff --git a/src/html/htmlcell.cpp b/src/html/htmlcell.cpp
index feeabd00c3..d70af49a3a 100644
--- a/src/html/htmlcell.cpp
+++ b/src/html/htmlcell.cpp
@@ -386,6 +386,16 @@ void wxHtmlWordCell::Split(const wxDC& dc,
wxPoint pt2 = (selTo == wxDefaultPosition) ?
wxPoint(m_Width, wxDefaultCoord) : selTo - GetAbsPos();
+ // if the selection is entirely within this cell, make sure pt1 < pt2 in
+ // order to make the rest of this function simpler:
+ if ( selFrom != wxDefaultPosition && selTo != wxDefaultPosition &&
+ selFrom.x > selTo.x )
+ {
+ wxPoint tmp = pt1;
+ pt1 = pt2;
+ pt2 = tmp;
+ }
+
unsigned len = m_Word.length();
unsigned i = 0;
pos1 = 0;