Index: Viewer/ViewerWidget.cpp
===================================================================
--- Viewer/ViewerWidget.cpp	(revision 666157)
+++ Viewer/ViewerWidget.cpp	(working copy)
@@ -443,15 +443,6 @@
     e->accept();
 }
 
-void Viewer::ViewerWidget::seekTo(int position)
-{
-    if ( ( position < (int) _list.count() ) && ( position >= 0 ) ) {
-        save();
-	_current = position;
-	load();
-    }
-}
-
 void Viewer::ViewerWidget::showNextN(int n)
 {
     save();
Index: Viewer/ViewerWidget.h
===================================================================
--- Viewer/ViewerWidget.h	(revision 666157)
+++ Viewer/ViewerWidget.h	(working copy)
@@ -53,7 +53,6 @@
     bool showingFullScreen() const;
     void setShowFullScreen( bool on );
     void show( bool slideShow );
-    void seekTo( int position );
     KActionCollection* actions();
 
 public slots:
Index: MainWindow/Window.cpp
===================================================================
--- MainWindow/Window.cpp	(revision 666157)
+++ MainWindow/Window.cpp	(working copy)
@@ -468,15 +468,7 @@
         // and magically scrolls to the originally selected one
         const QString fileName = ((const QStringList&)files).first();
         files = DB::ImageDB::instance()->currentScope(  true );
-        int index = 0;
-
-        for( QStringList::const_iterator it = files.constBegin(); it != files.constEnd(); ++it, ++index ) {
-            if ( *it == fileName ) {
-                seek = index;
-                break;
-            }
-        }
-
+        seek = files.findIndex(fileName);
     }
 
     if (random)
@@ -492,10 +484,10 @@
         viewer = new Viewer::ViewerWidget( "viewer" );
 
     viewer->show( slideShow );
-    viewer->load( files );
-    if (seek != -1) {
-        viewer->seekTo( seek );
-    }
+    if (seek != -1)
+        viewer->load( files, seek );
+    else
+        viewer->load( files );
     viewer->raise();
 }
 
