diff --git a/lib/galaxy/security/validate_user_input.py b/lib/galaxy/security/validate_user_input.py
index 0d3b68921ac..705519df9ff 100644
--- a/lib/galaxy/security/validate_user_input.py
+++ b/lib/galaxy/security/validate_user_input.py
@@ -23,8 +23,12 @@ def validate_publicname( trans, publicname, user=None ):
return ''
if user and user.username == publicname:
return ''
- if len( publicname ) < 4:
- return "Public name must be at least 4 characters in length"
+ if trans.webapp.name == 'tool_shed':
+ if len( publicname ) < 3:
+ return "Public name must be at least 3 characters in length"
+ else:
+ if len( publicname ) < 4:
+ return "Public name must be at least 4 characters in length"
if len( publicname ) > 255:
return "Public name cannot be more than 255 characters in length"
if not( VALID_PUBLICNAME_RE.match( publicname ) ):
diff --git a/tools/data_source/upload.xml b/tools/data_source/upload.xml
index de02c4afd36..e15de2ffbd2 100644
--- a/tools/data_source/upload.xml
+++ b/tools/data_source/upload.xml
@@ -33,7 +33,7 @@
-
+
not ( ( isinstance( value, unicode ) or isinstance( value, str ) ) and value != "" )