diff --git a/records.py b/records.py
index 2a9bb56..0fe09ca 100644
--- a/records.py
+++ b/records.py
@@ -52,6 +52,8 @@ class Record(object):
         # Support for string-based lookup.
         if key in self.keys():
             i = self.keys().index(key)
+            if self.keys().count(key) > 1:
+                raise KeyError("Record contains multiple '{}' fields.".format(key))
             return self.values()[i]
 
         raise KeyError("Record contains no '{}' field.".format(key))
@@ -296,7 +298,7 @@ class Database(object):
 
         # If path doesn't exists
         if not os.path.exists(path):
-            raise IOError("File '{}'' not found!".format(path))
+            raise IOError("File '{}' not found!".format(path))
 
         # If it's a directory
         if os.path.isdir(path):

diff --git a/tests/test_records.py b/tests/test_records.py
index 722591f..7e42731 100644
--- a/tests/test_records.py
+++ b/tests/test_records.py
@@ -97,3 +97,9 @@ class TestRecord:
             assert key in _dir
         for key in dir(object):
             assert key in _dir
+
+    def test_record_duplicate_column(self):
+        keys, values = ['id', 'name', 'email', 'email'], [1, '', '', '']
+        record = records.Record(keys, values)
+        with raises(KeyError):
+            record['email']

Records silently ignores duplicate field name in joined tables. 
In an SQL query I had joined to tables that happened to have a field with the same name (with different content). Records selected one of the fields without complaining; it just happened to be the wrong one. 

```sql
SELECT *
FROM A LEFT OUTER JOIN B on A.somekey=B.somekey
WHERE .....
```
If A and B contain a field with the same name, just one is returned. Usually the table name is prefixed to distinguish them, but I assume Records just uses the fieldname without prefix. That is usually convenient but not in this case. I think I'd prefer an error message. 

 

 
tests/test_records.py::TestRecord::test_record_duplicate_column
tests/test_records.py::TestRecordCollection::test_iter tests/test_records.py::TestRecordCollection::test_next tests/test_records.py::TestRecordCollection::test_iter_and_next tests/test_records.py::TestRecordCollection::test_multiple_iter tests/test_records.py::TestRecordCollection::test_slice_iter tests/test_records.py::TestRecordCollection::test_all_returns_a_list_of_records tests/test_records.py::TestRecordCollection::test_first_returns_a_single_record tests/test_records.py::TestRecordCollection::test_first_defaults_to_None tests/test_records.py::TestRecordCollection::test_first_default_is_overridable tests/test_records.py::TestRecordCollection::test_first_raises_when_more_than_first tests/test_records.py::TestRecordCollection::test_first_raises_default_if_its_an_exception_subclass tests/test_records.py::TestRecordCollection::test_first_raises_default_if_its_an_exception_instance tests/test_records.py::TestRecord::test_record_dir