Index: plugins/FeedsCSVParser.inc
===================================================================
--- plugins/FeedsCSVParser.inc	(revision 250)
+++ plugins/FeedsCSVParser.inc	(working copy)
@@ -112,6 +112,12 @@
    * Show mapping configuration as a guidance for import form users.
    */
   public function sourceForm($source_config) {
+
+    // $source_config is not properly set, and apparently useless, since we're not in an object-instance.
+    // Therefor, the CSV-settings (delimiter, no_header) on the form are incorrect. Reset these with the current settings.
+    // @todo: the proper way would be: $source_config= source->getConfigFor($this); (?)
+    $source_config = $this->config;
+
     $form = array();
     $form['#weight'] = -10;
 
@@ -195,13 +201,16 @@
         $sources[] = check_plain($mapping['source']);
       }
     }
-    $sep = ',';
+    $sep = $this->config['delimiter'];
     $columns = array();
     foreach (array_merge($uniques, $sources) as $col) {
       if (strpos($col, $sep) !== FALSE) {
         $col = '"' . str_replace('"', '""', $col) . '"';
       }
-      $columns[] = $col;
+      if (!in_array($col, $columns)) {
+        // avoid columns to appears twice in template
+        $columns[] = $col;
+      }
     }
     drupal_add_http_header('Cache-Control', 'max-age=60, must-revalidate');
     drupal_add_http_header('Content-Disposition', 'attachment; filename="'. $this->id . '_template.csv"');
