diff --git a/Lib/csv.py b/Lib/csv.py
index 7516380..f213854 100644
--- a/Lib/csv.py
+++ b/Lib/csv.py
@@ -152,10 +152,13 @@
 
         quotechar, delimiter, skipinitialspace = \
                    self._guess_quote_and_delimiter(sample, delimiters)
-        if delimiter is None:
+        if not delimiter:
             delimiter, skipinitialspace = self._guess_delimiter(sample,
                                                                 delimiters)
 
+        if not delimiter:
+            raise Error, "Could not determine delimiter"
+
         class dialect(Dialect):
             _name = "sniffed"
             lineterminator = '\r\n'
@@ -329,8 +332,12 @@
                                         data[0].count("%c " % d))
                     return (d, skipinitialspace)
 
-        # finally, just return the first damn character in the list
-        delim = delims.keys()[0]
+        # nothing else indicates a preference, pick the character that
+        # dominates(?)
+        items = [(v,k) for (k,v) in delims.items()]
+        items.sort()
+        delim = items[-1][1]
+
         skipinitialspace = (data[0].count(delim) ==
                             data[0].count("%c " % delim))
         return (delim, skipinitialspace)
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py
index 0ad77ef..8511a5a 100644
--- a/Lib/test/test_csv.py
+++ b/Lib/test/test_csv.py
@@ -852,6 +852,8 @@
 '''
 
     sample5 = "aaa\tbbb\r\nAAA\t\r\nBBB\t\r\n"
+    sample6 = "a|b|c\r\nd|e|f\r\n"
+    sample7 = "'a'|'b'|'c'\r\n'd'|e|f\r\n"
 
     def test_has_header(self):
         sniffer = csv.Sniffer()
@@ -882,6 +884,11 @@
         self.assertEqual(dialect.delimiter, ";")
         dialect = sniffer.sniff(self.sample5)
         self.assertEqual(dialect.delimiter, "\t")
+        dialect = sniffer.sniff(self.sample6)
+        self.assertEqual(dialect.delimiter, "|")
+        dialect = sniffer.sniff(self.sample7)
+        self.assertEqual(dialect.delimiter, "|")
+        self.assertEqual(dialect.quotechar, "'")
 
 if not hasattr(sys, "gettotalrefcount"):
     if test_support.verbose: print "*** skipping leakage tests ***"
