diff --git a/src/python/dm/aps_bss/impl/bssClient.py b/src/python/dm/aps_bss/impl/bssClient.py
index 75b5670550c2d647a34f938afe608acdf98573a5..1dfe582cea692f4d36c850eb53d0e3ee3e0bc001 100644
--- a/src/python/dm/aps_bss/impl/bssClient.py
+++ b/src/python/dm/aps_bss/impl/bssClient.py
@@ -96,15 +96,21 @@ class BssClient:
         for experimenter in experimenterArray:
             user = ApsUserInfo({
                 'id' : experimenter.id,
-                'badge' : experimenter.badge,
                 'email' : experimenter.email,
-                'firstName' : experimenter.firstName,
-                'lastName' : experimenter.lastName
             })
+            if hasattr(experimenter, 'badge'):
+                user['badge'] = experimenter.badge
+            else:
+                # Ignore this user, has no badge
+                continue
             if hasattr(experimenter, 'piFlag'):
                 user['piFlag'] = experimenter.piFlag
             if hasattr(experimenter, 'instId'):
                 user['instId'] = experimenter.instId
+            if hasattr(experimenter, 'firstName'):
+                user['firstName'] = ''.join(filter(lambda x:x in string.printable, experimenter.firstName))
+            if hasattr(experimenter, 'lastName'):
+                user['lastName'] = ''.join(filter(lambda x:x in string.printable, experimenter.lastName))
             if hasattr(experimenter, 'institution'):
                 # Remove non-printable characters
                 user['institution'] = ''.join(filter(lambda x:x in string.printable, experimenter.institution))