NaN in a join-result despite know value
When performing a join on a data frame with a data series, the last entry of the new column is sometimes NaN. It only seems to happen when the last item in the column the join is done on is found in more than one row. Here is a minimal example:

```
In [1]: df = DataFrame({'a': [1, 1]})

In [2]: ds = Series([2], index=[1], name='b')

In [3]: df.join(ds, on='a')
Out[3]: 
   a  b  
0  1  2  
1  1  NaN
```

Tested with 0.6.1 and 0.5.0 with identical results.
