--- a/src/qtgui/reslist.cpp
+++ b/src/qtgui/reslist.cpp
@@ -273,6 +273,7 @@
 // Reapply parameters. Sort params probably changed
 void ResList::setDocSource()
 {
+    LOGDEB(("ResList::setDocSource\n"));
     if (m_baseDocSource.isNull())
 	return;
     resetList();
@@ -292,23 +293,29 @@
 							title));
 	} 
     }
-
-    if (m_sortspecs.isNotNull()) {
-	string title = m_baseDocSource->title() + " (" + 
-	    string((const char *)tr("sorted").toUtf8()) + ")";
-	m_docSource = RefCntr<DocSequence>(new DocSeqSorted(m_docSource, 
-							    m_sortspecs,
-							    title));
+    
+    if (m_docSource->canSort()) {
+	m_docSource->setSortSpec(m_sortspecs);
+    } else {
+	if (m_sortspecs.isNotNull()) {
+	    LOGDEB(("Reslist: sortspecs not Null\n"));
+	    string title = m_baseDocSource->title() + " (" + 
+		string((const char *)tr("sorted").toUtf8()) + ")";
+	    m_docSource = RefCntr<DocSequence>(new DocSeqSorted(m_docSource, 
+								m_sortspecs,
+								title));
+	}
     }
     // Reset the page size in case the preference was changed
     m_pager->setPageSize(prefs.respagesize);
     m_pager->setDocSource(m_docSource);
     resultPageNext();
+    emit hasResults(getResCnt());
 }
 
 void ResList::setSortParams(DocSeqSortSpec spec)
 {
-    LOGDEB(("ResList::setSortParams\n"));
+    LOGDEB(("ResList::setSortParams: %s\n", spec.isNotNull() ? "notnull":"null"));
     m_sortspecs = spec;
 }