diff --git a/src/python/dm/common/objects/authorizationPrincipal.py b/src/python/dm/common/objects/authorizationPrincipal.py
index 271138e7fcf9a1642f29604cb9b2cbae89ba8529..566ac16017b2d36283c30f4694858d09cf409b14 100755
--- a/src/python/dm/common/objects/authorizationPrincipal.py
+++ b/src/python/dm/common/objects/authorizationPrincipal.py
@@ -4,8 +4,14 @@ from dmObject import DmObject
 
 class AuthorizationPrincipal(DmObject):
 
-    def __init__(self, name, token=None, userInfo={}):
-        DmObject.__init__(self,{'name' : name, 'token' : token, 'userInfo' : userInfo})
+    def __init__(self, dict={}, name=None, token=None, userInfo={}):
+        DmObject.__init__(self, dict)
+        if name is not None:
+            self['name'] = name
+        if token is not None:
+            self['token'] = token
+        if userInfo is not None and len(userInfo):
+            self['userInfo'] = userInfo
 
     def getName(self):
         return self.get('name')