diff --git a/IPython/parallel/controller/dependency.py b/IPython/parallel/controller/dependency.py
index c046556..0499762 100644
--- a/IPython/parallel/controller/dependency.py
+++ b/IPython/parallel/controller/dependency.py
@@ -16,6 +16,7 @@ from types import ModuleType
 from IPython.parallel.client.asyncresult import AsyncResult
 from IPython.parallel.error import UnmetDependency
 from IPython.parallel.util import interactive
+from IPython.utils import py3compat
 
 class depend(object):
     """Dependency decorator, for use with tasks.
@@ -65,9 +66,10 @@ class dependent(object):
             raise UnmetDependency()
         return self.f(*args, **kwargs)
     
-    @property
-    def __name__(self):
-        return self.func_name
+    if not py3compat.PY3:
+        @property
+        def __name__(self):
+            return self.func_name
 
 @interactive
 def _require(*names):
diff --git a/IPython/zmq/kernelmanager.py b/IPython/zmq/kernelmanager.py
index e81f723..a688d41 100644
--- a/IPython/zmq/kernelmanager.py
+++ b/IPython/zmq/kernelmanager.py
@@ -188,7 +188,7 @@ class ShellSocketChannel(ZMQSocketChannel):
     def run(self):
         """The thread's main activity.  Call start() instead."""
         self.socket = self.context.socket(zmq.DEALER)
-        self.socket.setsockopt(zmq.IDENTITY, self.session.session)
+        self.socket.setsockopt(zmq.IDENTITY, self.session.session.encode("ascii"))
         self.socket.connect('tcp://%s:%i' % self.address)
         self.iostate = POLLERR|POLLIN
         self.ioloop.add_handler(self.socket, self._handle_events, 
@@ -394,8 +394,8 @@ class SubSocketChannel(ZMQSocketChannel):
     def run(self):
         """The thread's main activity.  Call start() instead."""
         self.socket = self.context.socket(zmq.SUB)
-        self.socket.setsockopt(zmq.SUBSCRIBE,'')
-        self.socket.setsockopt(zmq.IDENTITY, self.session.session)
+        self.socket.setsockopt(zmq.SUBSCRIBE,b'')
+        self.socket.setsockopt(zmq.IDENTITY, self.session.session.encode("ascii"))
         self.socket.connect('tcp://%s:%i' % self.address)
         self.iostate = POLLIN|POLLERR
         self.ioloop.add_handler(self.socket, self._handle_events, 
@@ -483,7 +483,7 @@ class StdInSocketChannel(ZMQSocketChannel):
     def run(self):
         """The thread's main activity.  Call start() instead."""
         self.socket = self.context.socket(zmq.DEALER)
-        self.socket.setsockopt(zmq.IDENTITY, self.session.session)
+        self.socket.setsockopt(zmq.IDENTITY, self.session.session.encode("ascii"))
         self.socket.connect('tcp://%s:%i' % self.address)
         self.iostate = POLLERR|POLLIN
         self.ioloop.add_handler(self.socket, self._handle_events, 
@@ -562,7 +562,7 @@ class HBSocketChannel(ZMQSocketChannel):
 
     def _create_socket(self):
         self.socket = self.context.socket(zmq.REQ)
-        self.socket.setsockopt(zmq.IDENTITY, self.session.session)
+        self.socket.setsockopt(zmq.IDENTITY, self.session.session.encode("ascii"))
         self.socket.connect('tcp://%s:%i' % self.address)
         self.poller = zmq.Poller()
         self.poller.register(self.socket, zmq.POLLIN)
diff --git a/IPython/zmq/session.py b/IPython/zmq/session.py
index 6294a29..55df686 100644
--- a/IPython/zmq/session.py
+++ b/IPython/zmq/session.py
@@ -48,7 +48,7 @@ from IPython.utils.importstring import import_item
 from IPython.utils.jsonutil import extract_dates, squash_dates, date_default
 from IPython.utils.py3compat import str_to_bytes
 from IPython.utils.traitlets import (CBytes, Unicode, Bool, Any, Instance, Set,
-                                        DottedObjectName)
+                                        DottedObjectName, CUnicode)
 
 #-----------------------------------------------------------------------------
 # utility functions
@@ -239,10 +239,10 @@ class Session(Configurable):
         else:
             self.unpack = import_item(str(new))
         
-    session = CBytes(b'', config=True,
+    session = CUnicode(u'', config=True,
         help="""The UUID identifying this session.""")
     def _session_default(self):
-        return bytes(uuid.uuid4())
+        return unicode(uuid.uuid4())
     
     username = Unicode(os.environ.get('USER',u'username'), config=True,
         help="""Username for the Session. Default is your system username.""")