diff --git a/synapse/groups/groups_server.py b/synapse/groups/groups_server.py
index 322aad2a6f427265b7a13ec08e24539c8603e7ba..b1ee43ef90f072f6c9bfa4290b89aaf52801aa63 100644
--- a/synapse/groups/groups_server.py
+++ b/synapse/groups/groups_server.py
@@ -353,7 +353,10 @@ class GroupsServerHandler(object):
         for keyname in ("name", "avatar_url", "short_description",
                         "long_description"):
             if keyname in content:
-                profile[keyname] = content[keyname]
+                value = content[keyname]
+                if not isinstance(value, basestring):
+                    raise SynapseError(400, "%r value is not a string" % (keyname,))
+                profile[keyname] = value
 
         yield self.store.update_group_profile(group_id, profile)