diff --git a/gspreadsheet/gspreadsheet.py b/gspreadsheet/gspreadsheet.py
index <HASH>..<HASH> 100644
--- a/gspreadsheet/gspreadsheet.py
+++ b/gspreadsheet/gspreadsheet.py
@@ -188,6 +188,7 @@ class GSpreadsheet(object):
                 pass
 
         self.feed = self.get_feed()
+        self.fieldnames = self.feed.entry[0].custom.keys()
 
     def get_client(self):
         """Get the google data client."""
diff --git a/gspreadsheet/tests.py b/gspreadsheet/tests.py
index <HASH>..<HASH> 100644
--- a/gspreadsheet/tests.py
+++ b/gspreadsheet/tests.py
@@ -47,6 +47,11 @@ class Basics(TestCase):
 
         # continue in the same test to avoid making a new connection :(
 
+        # test_fieldnames_exist_and_are_accurate(self):
+        # assertListEqual requires python>=2.7
+        self.assertListEqual(sorted(sheet.fieldnames),
+            sorted(['name', 'widgets', 'date', 'price']))
+
         # test_can_mark_row_as_readonly(self):
         sheet.readonly = True
         with self.assertRaises(ReadOnlyException):
add fieldnames property that stores fields used in the sheet