Change in the way DataFrames are assigned / copied
I was using pandas 0.13.1 in a project. Later, I tried the same code in a different machine, which had the newer 0.15.2. I found that I had a bug in my code, which was only made clear by some API change that occurred somewhere between these two versions.

Let me show an example.

**In pandas 0.13.1**

``` python
>>> import pandas as pd
>>> import numpy as np
>>> my_data = pd.DataFrame(np.arange(12).reshape(3, 4))
>>> my_data
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

[3 rows x 4 columns]
>>> temp = my_data
>>> temp += 2
>>> temp
    0   1   2   3
0   2   3   4   5
1   6   7   8   9
2  10  11  12  13

[3 rows x 4 columns]
>>> my_data
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

[3 rows x 4 columns]
>>> id(my_data)
140175467916176
>>> id(temp)
140175467916432
>>> pd.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 2.7.6.final.0
python-bits: 64
OS: Linux
OS-release: 3.16.0-25-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: pt_PT.UTF-8

pandas: 0.13.1
Cython: None
numpy: 1.9.2
scipy: 0.15.1
statsmodels: None
IPython: None
sphinx: None
patsy: None
scikits.timeseries: None
dateutil: 2.4.0
pytz: 2014.10
bottleneck: None
tables: None
numexpr: 2.4
matplotlib: None
openpyxl: None
xlrd: 0.9.3
xlwt: None
xlsxwriter: None
sqlalchemy: None
lxml: None
bs4: None
html5lib: None
bq: None
apiclient: None
>>> 
```

**Now with pandas 0.15.2**

``` python

>>> my_data = pd.DataFrame(np.arange(12).reshape(3, 4))
>>> my_data
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
>>> temp = my_data
>>> temp += 2
>>> temp
    0   1   2   3
0   2   3   4   5
1   6   7   8   9
2  10  11  12  13
>>> my_data
    0   1   2   3
0   2   3   4   5
1   6   7   8   9
2  10  11  12  13
>>> id(my_data)
139722601609360
>>> id(temp)
139722601609360
>>> pd.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 2.7.6.final.0
python-bits: 64
OS: Linux
OS-release: 3.16.0-25-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: pt_PT.UTF-8

pandas: 0.15.2
nose: None
Cython: None
numpy: 1.8.2
scipy: 0.13.3
statsmodels: None
IPython: 1.2.1
sphinx: 1.2.3
patsy: None
dateutil: 2.4.0
pytz: 2014.10
bottleneck: 0.8.0
tables: 3.1.1
numexpr: 2.4
matplotlib: 1.3.1
openpyxl: None
xlrd: 0.9.3
xlwt: 0.7.5
xlsxwriter: None
lxml: None
bs4: None
html5lib: 0.999
httplib2: 0.8
apiclient: None
rpy2: None
sqlalchemy: None
pymysql: None
psycopg2: None

```

If I understand correctly, in the first case, the assignment created a new object, while in the latter, the assignment created a shallow copy.

I am sorry if this was previously asked/documented, but I couldn't find such reference. I `CTRL+F`'ed the [What's New](pandas.pydata.org/pandas-docs/version/0.15.2/whatsnew.html) page for some keywords (shallow, deep, copy, assign), and couldn't find something related.

Is this a bug in 0.15.2, or was it a bug in 0.13.1? If so, where was it corrected?

Thank you.
