diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb
index 389ad4eb6..52bdf4cf6 100644
--- a/app/controllers/users/omniauth_callbacks_controller.rb
+++ b/app/controllers/users/omniauth_callbacks_controller.rb
@@ -28,6 +28,8 @@ class Users::OmniauthCallbacksController < ApplicationController
     # Call the appropriate logic
     send("create_or_sign_on_user_using_#{provider}", request.env["omniauth.auth"])
 
+    @data[:awaiting_approval] = true if invite_only?
+
     respond_to do |format|
       format.html
       format.json { render json: @data }
@@ -316,4 +318,9 @@ class Users::OmniauthCallbacksController < ApplicationController
 
   end
 
+  private
+
+  def invite_only?
+    SiteSetting.invite_only? && !@data[:authenticated]
+  end
 end
diff --git a/spec/controllers/omniauth_callbacks_controller_spec.rb b/spec/controllers/omniauth_callbacks_controller_spec.rb
index 37eb2959a..e1f74513c 100644
--- a/spec/controllers/omniauth_callbacks_controller_spec.rb
+++ b/spec/controllers/omniauth_callbacks_controller_spec.rb
@@ -32,6 +32,17 @@ describe Users::OmniauthCallbacksController do
       response.should be_success
     end
 
+    context "when 'invite only' site setting is enabled" do
+      before { SiteSetting.stubs(:invite_only?).returns(true) }
+
+      it 'informs the user they are awaiting approval' do
+        xhr :get, :complete, provider: 'twitter', format: :json
+
+        expect(
+          JSON.parse(response.body)['awaiting_approval']
+        ).to be_true
+      end
+    end
   end
 
   describe 'facebook' do