diff --git a/djaosdb/caosdb_client.py b/djaosdb/caosdb_client.py
index 8633e051c2b9b095a7a4bb7f15ec9f7179746738..3b16415163a0d4a95c508a8997c1762206cde0e5 100644
--- a/djaosdb/caosdb_client.py
+++ b/djaosdb/caosdb_client.py
@@ -42,13 +42,17 @@ class FindResult(Result):
 
         upper = (skip + limit if skip is not None and limit is not None else
                  limit)
-        if sort:
-            rows.sort(key=lambda x: x[sort[0][0]], reverse=sort[0][1] < 0)
+
 
         if columns is not None:
-            self._results = []
-            for row in rows[skip:upper]:
-                self._results.append(dict(zip(columns, row)))
+            if sort:
+                named_columns = [dict(zip(columns, row)) for row in rows]
+                named_columns.sort(key=lambda x: x[sort[0][0]], reverse=sort[0][1] < 0)
+                self._results = named_columns[skip:upper]
+            else:
+                self._results = []
+                for row in rows[skip:upper]:
+                    self._results.append(dict(zip(columns, row)))
         else:
             self._results=rows