A small, complete example of the issue

import pandas

idx = pandas.date_range("2012", "2016", freq="D")
df = pandas.concat([
                       pandas.DataFrame(1, index=idx, columns=[ctry]) for ctry in ["BE", "FR", "SP"]
                       ],
                   axis=1).stack().to_frame()

df.index = df.index.swaplevel(0, 1)
df = df.sortlevel()
df.info()
print()
df_ok = df.loc[pandas.IndexSlice[("SP", "FR"), "2013-01-01":"2014-01-01"], :]
print()
# here, the time indexation is not properly handled as dates < 2013-01-01 are kept
df_not_ok=df.loc[pandas.IndexSlice[("SP", "BE", "FR"), "2013-01-01":"2014-01-01"], :]

Expected Output

MultiIndex: 4386 entries, (BE, 2012-01-01 00:00:00) to (SP, 2016-01-01 00:00:00) Data columns (total 1 columns): 0 4386 non-null int64 dtypes: int64(1) memory usage: 51.4+ KB

MultiIndex: 732 entries, (FR, 2013-01-01 00:00:00) to (SP, 2014-01-01 00:00:00) Data columns (total 1 columns): 0 732 non-null int64 dtypes: int64(1) memory usage: 8.6+ KB

MultiIndex: 3290 entries, (BE, 2013-01-01 00:00:00) to (SP, 2014-01-01 00:00:00) Data columns (total 1 columns): 0 2196 non-null int64 dtypes: int64(1) memory usage: 38.6+ KB

Actual output

MultiIndex: 4386 entries, (BE, 2012-01-01 00:00:00) to (SP, 2016-01-01 00:00:00) Data columns (total 1 columns): 0 4386 non-null int64 dtypes: int64(1) memory usage: 51.4+ KB

MultiIndex: 732 entries, (FR, 2013-01-01 00:00:00) to (SP, 2014-01-01 00:00:00) Data columns (total 1 columns): 0 732 non-null int64 dtypes: int64(1) memory usage: 8.6+ KB

MultiIndex: 3290 entries, (BE, 2012-01-01 00:00:00) to (SP, 2014-01-01 00:00:00) Data columns (total 1 columns): 0 3290 non-null int64 dtypes: int64(1) memory usage: 38.6+ KB

Output of pd.show_versions()

# Paste the output here INSTALLED VERSIONS commit: None python: 2.7.11.final.0 python-bits: 32 OS: Windows OS-release: 7 machine: AMD64 processor: Intel64 Family 6 Model 61 Stepping 4, GenuineIntel byteorder: little LC_ALL: None LANG: None pandas: 0.18.0 nose: 1.3.7 pip: 8.1.1 setuptools: 20.3 Cython: 0.23.4 numpy: 1.10.4 scipy: 0.17.0 statsmodels: 0.6.1 xarray: None IPython: 4.1.2 sphinx: 1.3.5 patsy: 0.4.0 dateutil: 2.5.1 pytz: 2016.2 blosc: None bottleneck: 1.0.0 tables: 3.2.2 numexpr: 2.5 matplotlib: 1.5.1 openpyxl: 2.3.2 xlrd: 0.9.4 xlwt: 1.0.0 xlsxwriter: 0.8.4 lxml: 3.6.0 bs4: 4.4.1 html5lib: None httplib2: None apiclient: None sqlalchemy: 1.0.12 pymysql: None psycopg2: None jinja2: 2.8 boto: 2.39.0

Comment From: jreback

This is on 0.19.rc1, though IIRC this is fixed in 0.18.1

In [13]: df.loc[pandas.IndexSlice[("SP"), "2013-01-01":"2014-01-01"], :].info()
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 366 entries, (SP, 2013-01-01 00:00:00) to (SP, 2014-01-01 00:00:00)
Data columns (total 1 columns):
0    366 non-null int64
dtypes: int64(1)
memory usage: 5.7+ KB

In [15]: df.loc[pandas.IndexSlice[("SP", "BE", "SP"), "2013-01-01":"2014-01-01"], :].info()
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 732 entries, (BE, 2013-01-01 00:00:00) to (SP, 2014-01-01 00:00:00)
Data columns (total 1 columns):
0    732 non-null int64
dtypes: int64(1)
memory usage: 11.4+ KB

In [16]: df.loc[pandas.IndexSlice[("SP", "BE", "FR"), "2013-01-01":"2014-01-01"], :].info()
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 1098 entries, (BE, 2013-01-01 00:00:00) to (SP, 2014-01-01 00:00:00)
Data columns (total 1 columns):
0    1098 non-null int64
dtypes: int64(1)
memory usage: 17.2+ KB