diff --git a/util/qlalr/compress.cpp b/util/qlalr/compress.cpp
index aefcb03cd62ace56b5885a791872c1fa94c321e8..4ae0716047533708a5d893a8a6fdf899f5c7dcc7 100644
--- a/util/qlalr/compress.cpp
+++ b/util/qlalr/compress.cpp
@@ -174,7 +174,7 @@ void Compress::operator () (int *table, int row_count, int column_count)
       sortedTable [i].assign (i, begin, end);
     }
 
-  qSort (sortedTable.begin (), sortedTable.end (), _SortUncompressedRow ());
+  std::sort (sortedTable.begin (), sortedTable.end (), _SortUncompressedRow ());
 
 #ifndef QLALR_NO_CHECK_SORTED_TABLE
   int previous_zeros = INT_MAX;
diff --git a/util/qlalr/lalr.cpp b/util/qlalr/lalr.cpp
index 7377bf63218443e6f7988cf68ffd69c41d835ba8..c68076477f33200b8c5b183e4f287c2337999391 100644
--- a/util/qlalr/lalr.cpp
+++ b/util/qlalr/lalr.cpp
@@ -166,7 +166,7 @@ State::State (Grammar *g):
 
 QPair<ItemPointer, bool> State::insert (const Item &item)
 {
-  ItemPointer it = qFind (kernel.begin (), kernel.end (), item);
+  ItemPointer it = std::find (kernel.begin (), kernel.end (), item);
 
   if (it != kernel.end ())
     return qMakePair (it, false);
@@ -176,7 +176,7 @@ QPair<ItemPointer, bool> State::insert (const Item &item)
 
 QPair<ItemPointer, bool> State::insertClosure (const Item &item)
 {
-  ItemPointer it = qFind (closure.begin (), closure.end (), item);
+  ItemPointer it = std::find (closure.begin (), closure.end (), item);
 
   if (it != closure.end ())
     return qMakePair (it, false);
@@ -207,7 +207,7 @@ Grammar::Grammar ():
 
 Name Grammar::intern (const QString &id)
 {
-  Name name = qFind (names.begin (), names.end (), id);
+  Name name = std::find (names.begin (), names.end (), id);
 
   if (name == names.end ())
     name = names.insert (names.end (), id);
@@ -322,7 +322,7 @@ void Automaton::buildNullables ()
 
 QPair<StatePointer, bool> Automaton::internState (const State &state)
 {
-  StatePointer it = qFind (states.begin (), states.end (), state);
+  StatePointer it = std::find (states.begin (), states.end (), state);
 
   if (it != states.end ())
     return qMakePair (it, false);
diff --git a/util/qlalr/lalr.h b/util/qlalr/lalr.h
index 7f62b411ca018848a228163bb7308cb005d27d64..85c5b51e380e6c54a0953f71e5d303853bdc529c 100644
--- a/util/qlalr/lalr.h
+++ b/util/qlalr/lalr.h
@@ -50,6 +50,7 @@
 #include <QtCore/qtextstream.h>
 #include <QtCore/qpair.h>
 
+#include <algorithm>
 #include <functional>
 
 class Rule;
@@ -319,7 +320,7 @@ typename Node<_Tp>::iterator Node<_Tp>::get (_Tp data)
 template <typename _Tp>
 QPair<typename QLinkedList<typename Node<_Tp>::iterator>::iterator, bool> Node<_Tp>::insertEdge (typename Node<_Tp>::iterator other) const
 {
-  edge_iterator it = qFind (outs.begin (), outs.end (), other);
+  edge_iterator it = std::find (outs.begin (), outs.end (), other);
 
   if (it != outs.end ())
     return qMakePair (it, false);