diff --git a/src/dvbcut.cpp b/src/dvbcut.cpp
index fda4c7a..fa12fff 100644
--- a/src/dvbcut.cpp
+++ b/src/dvbcut.cpp
@@ -1846,41 +1846,43 @@ void dvbcut::open(std::list<std::string> filenames, std::string idxfilename, std
     return;
   }
 
-  if (idxfilename.empty()) {
-    idxfilename = filename + ".idx";
-    if (!nogui) {
-	  /*
-	   * BEWARE! UGLY HACK BELOW!
-	   *
-	   * In order to circumvent the QFileDialog's stupid URL parsing,
-	   * we need to first change to the directory and then pass the
-	   * filename as a relative file: URL. Otherwise, filenames that
-	   * contain ":" will not be handled correctly. --mr
-	   */
-	  QUrl u;
-	  u.setProtocol(QString("file"));
-	  u.setPath(QString(idxfilename));
-	  if (chdir((const char*)u.dirPath()) == -1) chdir("/");
-	  QString relname = QString("file:") + u.fileName();
-	  QString s=QFileDialog::getSaveFileName(
-		  relname,
-		  settings().idxfilter,
-		  this,
-		  "Choose index file...",
-		  "Choose the name of the index file" );
-	  if (!s) {
-		delete mpg;
-		mpg=0;
-		fileOpenAction->setEnabled(true);
-		return;
-	  }
-	  idxfilename=(const char*)s;
-	  // it's now a relative name that will be canonicalized again soon
-	}
+  if (settings().create_index_file) {
+    if (idxfilename.empty()) {
+      idxfilename = filename + ".idx";
+      if (!nogui) {
+  	  /*
+  	   * BEWARE! UGLY HACK BELOW!
+  	   *
+  	   * In order to circumvent the QFileDialog's stupid URL parsing,
+  	   * we need to first change to the directory and then pass the
+  	   * filename as a relative file: URL. Otherwise, filenames that
+  	   * contain ":" will not be handled correctly. --mr
+  	   */
+  	  QUrl u;
+  	  u.setProtocol(QString("file"));
+  	  u.setPath(QString(idxfilename));
+  	  if (chdir((const char*)u.dirPath()) == -1) chdir("/");
+  	  QString relname = QString("file:") + u.fileName();
+  	  QString s=QFileDialog::getSaveFileName(
+  		  relname,
+  		  settings().idxfilter,
+  		  this,
+  		  "Choose index file...",
+  		  "Choose the name of the index file" );
+  	  if (!s) {
+  		delete mpg;
+  		mpg=0;
+  		fileOpenAction->setEnabled(true);
+  		return;
+  	  }
+  	  idxfilename=(const char*)s;
+  	  // it's now a relative name that will be canonicalized again soon
+  	}
+    }
+  
+    make_canonical(idxfilename);
   }
 
-  make_canonical(idxfilename);
-
   pictures=-1;
 
   if (!idxfilename.empty()) {
diff --git a/src/settings.cpp b/src/settings.cpp
index 30d1b9c..db9cddc 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -234,6 +234,7 @@ dvbcut_settings::load_settings() {
   endGroup();	// labels
   start_bof = readBoolEntry("/start_bof", true);
   stop_eof = readBoolEntry("/stop_eof", true);
+  create_index_file = readBoolEntry("create_index_file", true);
   beginGroup("/snapshots");
     snapshot_type = readEntry("/type", "PNG");
     snapshot_quality = readNumEntry("/quality", -1);
@@ -352,6 +353,7 @@ dvbcut_settings::save_settings() {
   endGroup();	// labels
   writeEntry("/start_bof", start_bof);
   writeEntry("/stop_eof", stop_eof);
+  writeEntry("/create_index_file", create_index_file);
   beginGroup("/snapshots");
     writeEntry("/type", snapshot_type);
     writeEntry("/quality", snapshot_quality);
diff --git a/src/settings.h b/src/settings.h
index 8050731..8baabd3 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -86,6 +86,7 @@ public:
   double chapter_threshold;
   int chapter_minimum;
 
+  bool create_index_file;
 };
 
 // access function

