# Buggy code
def _getitem_iterable(self, key, axis=0):
    labels = self.obj._get_axis(axis)

    def _reindex(keys, level=None):
        try:
            return self.obj.reindex_axis(keys, axis=axis, level=level)
        except AttributeError:
            # Series
            assert axis == 0
            return self.obj.reindex(keys, level=level)

    if com._is_bool_indexer(key):
        key = _check_bool_indexer(labels, key)
        return _reindex(labels[np.asarray(key)])
    else:
        if isinstance(key, Index):
            # want Index objects to pass through untouched
            keyarr = key
        else:
            # asarray can be unsafe, NumPy strings are weird
            keyarr = _asarray_tuplesafe(key)
        if _is_integer_dtype(keyarr) and not _is_integer_index(labels):
            keyarr = labels.take(keyarr)

        # this is not the most robust, but...
        if isinstance(labels, MultiIndex) and not isinstance(keyarr[0], tuple):
            level = 0
        else:
            level = None

        return _reindex(keyarr, level=level)


# Traceback (ValueError)
In [17]: date_range(datetime.datetime.today(), periods=10, freq='2h20m')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/chang/Dropbox/git/pandas/<ipython-input-17-ff4e03382573> in <module>()
----> 1 date_range(datetime.datetime.today(), periods=10, freq='2h20m')

/home/chang/Dropbox/git/pandas/pandas/tseries/index.pyc in date_range(start, end, periods, freq, tz, normalize)
1209     """
1210     return DatetimeIndex(start=start, end=end, periods=periods,
-> 1211                          freq=freq, tz=tz, normalize=normalize)
1212
1213

/home/chang/Dropbox/git/pandas/pandas/tseries/index.pyc in __new__(cls, data, freq, start, end, periods, copy, name, tz, verify_integrity, normalize, **kwds)
202
203         if data is None and offset is None:
--> 204             raise ValueError("Must provide freq argument if no data is "
205                              "supplied")
206

ValueError: Must provide freq argument if no data is supplied

# Fixed code
def _getitem_iterable(self, key, axis=0):
    labels = self.obj._get_axis(axis)

    def _reindex(keys, level=None):
        try:
            return self.obj.reindex_axis(keys, axis=axis, level=level)
        except AttributeError:
            # Series
            assert axis == 0
            return self.obj.reindex(keys, level=level)

    if com._is_bool_indexer(key):
        key = _check_bool_indexer(labels, key)
        return _reindex(labels[np.asarray(key)])
    else:
        if isinstance(key, Index):
            # want Index objects to pass through untouched
            keyarr = key
        else:
            # asarray can be unsafe, NumPy strings are weird
            keyarr = _asarray_tuplesafe(key)

        if _is_integer_dtype(keyarr) and not _is_integer_index(labels):
            return self.obj.take(keyarr, axis=axis)

        # this is not the most robust, but...
        if isinstance(labels, MultiIndex) and not isinstance(keyarr[0], tuple):
            level = 0
        else:
            level = None

        return _reindex(keyarr, level=level)