protected function processConnect($provider, $service, $access_token)
	{
		$user_info_callback = Config::get(
			'laravel-social::providers.' . strtolower($provider) . '.fetch_user_info'
		);
		
		if (empty($user_info_callback) || !$user_info_callback instanceof Closure) {
			return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
				->with(
					Config::get('laravel-social::error_flash_var'),
					'There was a problem connecting your account (6).'
				);
		}
		
		try {
			$user_info = $user_info_callback($service);
		} catch (Exception $e) {}
		
		if (empty($user_info) || !is_array($user_info)) {
			return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
				->with(
					Config::get('laravel-social::error_flash_var'),
					'There was a problem connecting your account (7).'
				);
		}
		
		if (empty($user_info['id'])) {
			return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
				->with(
					Config::get('laravel-social::error_flash_var'),
					'There was a problem connecting your account (8).'
				);
		}
		
		$provider_id = array_get($user_info, 'id');
		
		$user_provider = Provider::where('provider', strtolower($provider))
			->where('provider_id', $provider_id)
			->first();
		
		if ($user_provider) {
			if ($user_provider->user_id != Auth::id()) {
				return Redirect::to(Session::pull('mmanos.social.onerror', '/'))
					->with(
						Config::get('laravel-social::error_flash_var'),
						'There was a problem connecting your account (9).'
					);
			}
			
			$user_provider->access_token = $access_token;
			$user_provider->save();
		}
		else {
			$this->linkProvider(Auth::id(), $provider, $provider_id, $access_token);
		}
		
		return Redirect::to(Session::pull('mmanos.social.onsuccess', '/'))
			->with(
				Config::get('laravel-social::success_flash_var'),
				'You have successfully connected your account.'
			);
	}