Does anybody knows why the `os.path.join` function doesn't work with subclasses of `str`?

(I'm using Python3.2 x64 and Python2.7 x86 on Windows and the result is the same)

That's the code I have

```
class Path(str):
    def __add__(self, other):
        return Path(os.path.join(self, other))

p = Path(r'C:\the\path')
d = p + 'some_file.txt'

```

and the result I want:

```
'C:\\the\\path\\some_file.txt'

```

but the output is `\\some_file.txt` no matter the value of `self`.

I know I can do either `str(self)` or store it as `self.path` and use later, but why does `os.join.path` doesn't accept a str subclass nor raise an error (like when you use a number or any non string type)?