diff --git a/app/models/user.rb b/app/models/user.rb
index 2411b270fc67d666ce92492a9a41010137dcbcfc..526edb9839e52c7f5d76f0c58c6e4925bd5dba4a 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -198,6 +198,11 @@ class User < ActiveRecord::Base
         User.find_by_username(name_or_id)
       end
     end
+
+    def defaults
+      { projects_limit: Gitlab.config.gitlab.default_projects_limit, can_create_group: Gitlab.config.gitlab.default_can_create_group, can_create_team: Gitlab.config.gitlab.default_can_create_team }
+    end
+
   end
 
   #
diff --git a/lib/api/users.rb b/lib/api/users.rb
index 84256b51124ea8c58ed2f810dff47dd8476a28d2..3b7ae9f01a1c2eb54bcd84a2665a07916d17869e 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -46,7 +46,7 @@ module API
         authenticated_as_admin!
         required_attributes! [:email, :password, :name, :username]
 
-        attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio]
+        attrs = User.defaults.merge(attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio])
         user = User.new attrs, as: :admin
         if user.save
           present user, with: Entities::User
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index 2f4aaae38901149173a25c324abc6300892e9b12..c09d78993e175ce054d7cc23d05ebb75e365af3e 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -57,6 +57,17 @@ describe API::API do
       response.status.should == 201
     end
 
+    it "creating a user should respect default project limit" do
+      limit = 123456
+      Gitlab.config.gitlab.stub(:default_projects_limit).and_return(limit)
+      attr = attributes_for(:user )
+      expect {
+        post api("/users", admin), attr
+      }.to change { User.count }.by(1)
+      User.find_by_username(attr[:username]).projects_limit.should == limit
+      Gitlab.config.gitlab.unstub(:default_projects_limit)
+    end
+
     it "should not create user with invalid email" do
       post api("/users", admin), { email: "invalid email", password: 'password' }
       response.status.should == 400