--- a/src/qtgui/rclmain_w.cpp
+++ b/src/qtgui/rclmain_w.cpp
@@ -301,6 +301,7 @@
     connect(restable, SIGNAL(docSaveToFileClicked(Rcl::Doc)), 
 	    this, SLOT(saveDocToFile(Rcl::Doc)));
 
+    reslist->setRclMain(this);
     connect(this, SIGNAL(docSourceChanged(RefCntr<DocSequence>)),
 	    reslist, SLOT(setDocSource(RefCntr<DocSequence>)));
     connect(firstPageAction, SIGNAL(activated()), 
@@ -931,8 +932,12 @@
 	connect(indexSched->cronCLB, SIGNAL(clicked()), 
 		this, SLOT(execCronTool()));
 	if (theconfig && theconfig->isDefaultConfig()) {
+#ifdef RCL_MONITOR
 	    connect(indexSched->rtidxCLB, SIGNAL(clicked()), 
 		    this, SLOT(execRTITool()));
+#else
+	    indexSched->rtidxCLB->setEnabled(false);
+#endif
 	} else {
 	    indexSched->rtidxCLB->setEnabled(false);
 	}
@@ -1493,8 +1498,9 @@
     return false;
 }
 
-void RclMain::startNativeViewer(Rcl::Doc doc)
-{
+void RclMain::startNativeViewer(Rcl::Doc doc, int pagenum)
+{
+    LOGDEB(("RclMain::startNativeViewer: page %d\n", pagenum));
     // Look for appropriate viewer
     string cmdplusattr;
     if (prefs.useDesktopOpen) {
@@ -1512,11 +1518,13 @@
 	return;
     }
 
-    int pagenum = 1;
-    if (m_source.isNotNull())
-	pagenum = m_source->getFirstMatchPage(doc);
-    if (pagenum == -1)
+    if (pagenum == -1) {
 	pagenum = 1;
+	if (m_source.isNotNull())
+	    pagenum = m_source->getFirstMatchPage(doc);
+	if (pagenum == -1)
+	    pagenum = 1;
+    }
     char cpagenum[20];
     sprintf(cpagenum, "%d", pagenum);