diff --git a/xray/core/indexing.py b/xray/core/indexing.py
index <HASH>..<HASH> 100644
--- a/xray/core/indexing.py
+++ b/xray/core/indexing.py
@@ -164,6 +164,8 @@ def remap_label_indexers(data_obj, indexers, method=None):
     """Given an xray data object and label based indexers, return a mapping
     of equivalent location based indexers.
     """
+    if method is not None and not isinstance(method, str):
+        raise TypeError('``method`` must be a string')
     return dict((dim, convert_label_indexer(data_obj[dim].to_index(), label,
                                             dim, method))
                 for dim, label in iteritems(indexers))
diff --git a/xray/test/test_dataset.py b/xray/test/test_dataset.py
index <HASH>..<HASH> 100644
--- a/xray/test/test_dataset.py
+++ b/xray/test/test_dataset.py
@@ -764,6 +764,10 @@ class TestDataset(TestCase):
         with self.assertRaisesRegexp(NotImplementedError, 'slice objects'):
             data.sel(dim2=slice(1, 3), method='ffill')
 
+        with self.assertRaisesRegexp(TypeError, '``method``'):
+            # this should not pass silently
+            data.sel(data)
+
     def test_loc(self):
         data = create_test_data()
         expected = data.sel(dim3='a')
Ensure an error is raise for an invalid method argument in .sel