Index: src/3rdparty/squirrel/squirrel/sqbaselib.cpp =================================================================== --- src/3rdparty/squirrel/squirrel/sqbaselib.cpp (revision 23856) +++ src/3rdparty/squirrel/squirrel/sqbaselib.cpp (working copy) @@ -538,6 +538,10 @@ if(!_sort_compare(v,arr->_values[root],arr->_values[maxChild],func,ret)) return false; if (ret < 0) { + if (root == maxChild) { + v->Raise_Error(_SC("inconsistent compare function")); + return false; // We'd be swapping ourselve. The compare function is incorrect + } _Swap(arr->_values[root],arr->_values[maxChild]); root = maxChild; }