diff --git a/mpd.py b/mpd.py
index <HASH>..<HASH> 100644
--- a/mpd.py
+++ b/mpd.py
@@ -23,6 +23,12 @@ ERROR_PREFIX = "ACK "
 SUCCESS = "OK"
 NEXT = "list_OK"
 
+try:
+    # workaround to get unicode strings in all python versions
+    str = unicode
+except NameError:
+    pass
+
 
 class MPDError(Exception):
     pass
diff --git a/test.py b/test.py
index <HASH>..<HASH> 100755
--- a/test.py
+++ b/test.py
@@ -151,7 +151,11 @@ class TestMPDClient(unittest.TestCase):
         self.assertFalse(imple_cmds - avaible_cmds, long_desc)
 
     def test_unicode_in_command_args(self):
-        self.assertIsInstance(self.client.find("file", "☯☾☝♖✽"), list)
+        if sys.version_info < (3, 0):
+            arg = "☯☾☝♖✽".decode("utf-8")
+        else:
+            arg = "☯☾☝♖✽"
+        self.assertIsInstance(self.client.find("file",arg), list)
 
 if __name__ == '__main__':
     unittest.main()
Fix crash when sending unicode strings to socket

It's only an issue with Python 2: it would try to coerce the Unicode
string to ASCII, which will not work unless all characters are part of ASCII.
Overwrite str() with unicode() in python 2.x, solve this.
Fix issue #4