diff --git a/README.txt b/README.txt
index 01cde4a..d6cedc5 100644
--- a/README.txt
+++ b/README.txt
@@ -25,7 +25,7 @@ Also this tab allows to unlink your Facebook account.
 -- REQUIREMENTS --
 PHP 5.2 or higher versions. 
 Drupal 6.x. 
-Facebook PHP Library: http://github.com/facebook/php-sdk/
+Facebook PHP 3.x Library or higher: http://github.com/facebook/php-sdk/ (OAuth 2.0 Support Now)
 Facebook API key: http://www.facebook.com/developers/
 
 
diff --git a/fbconnect.js b/fbconnect.js
index 4067954..14e2dbf 100644
--- a/fbconnect.js
+++ b/fbconnect.js
@@ -10,7 +10,7 @@ Drupal.fbconnect.init = function () {
   }
   
   if (Drupal.settings.fbconnect.loginout_mode == 'auto') {
-    FB.Event.subscribe('auth.sessionChange', Drupal.fbconnect.reload_ifUserConnected);
+    FB.Event.subscribe('auth.authResponseChange', Drupal.fbconnect.reload_ifUserConnected);
 //    FB.Event.subscribe('auth.login', function(response) {
 //      console.log('event auth.login');
 //    });
@@ -35,8 +35,8 @@ Drupal.fbconnect.logout = function(keep_fbaccount_logged) {
 Drupal.fbconnect.reload_ifUserConnected = function(state) {
   var user = Drupal.settings.fbconnect.user;
   
-  if (!state.session || user.uid) return;
-  if (state.session.uid != user.fbuid) {
+  if (!state.authResponse || user.uid) return;
+  if (state.authResponse.userID != user.fbuid) {
     window.location.reload();
   }
 };
@@ -51,7 +51,7 @@ Drupal.fbconnect.initLogoutLinks = function(context) {
   if (loginout_mode == 'manual') return;
   
   links.addClass('logout_link_inited').click(function() {
-    var fbuid = FB.getSession() && FB.getSession().uid;
+    var fbuid = FB.getAuthResponse().userID && FB.getAuthResponse().userID;
     if (!user.fbuid || user.fbuid != fbuid) return;
     if (loginout_mode == 'auto') { 
       Drupal.fbconnect.logout();
@@ -87,17 +87,20 @@ Drupal.fbconnect.initLogoutLinks = function(context) {
 };
 
 Drupal.fbconnect.DoFastRegistration =  function(link) {
-  FB.login(function(response) {
-    if (response.session && /email/.test(response.perms)) {
-      window.location.href = link.href;
+    FB.login(function(response) {
+    if (response.authResponse && response.status == 'connected') {
+            FB.api('/me/permissions', function(perms_response) {
+				if(perms_response['data'][0]['email']) {
+			      window.location.href = link.href;	
+				}
+            });
     }
-  }, {perms:'email'});
+  }, {scope:'email'});
 };
 
-
 function facebook_onlogin_ready() {
   // http://github.com/facebook/connect-js/issues/194
-  if (!FB.getSession()) {
+  if (!FB.getAuthResponse()) {
     return;
   }
   $("#fbconnect-autoconnect-form").submit();
diff --git a/fbconnect.module b/fbconnect.module
index 9e9b91c..c190eb5 100644
--- a/fbconnect.module
+++ b/fbconnect.module
@@ -206,7 +206,7 @@ function fbconnect_form_alter(&$form, $form_state, $form_id) {
         #848354 : ask user for email permission when account linking is disabled
         $attr = array();
         if (variable_get('fbconnect_fast_reg', 0) && variable_get('fbconnect_reg_options', 0)) {
-          $attr = array('perms' => 'email');
+          $attr = array('scope' => 'email');
         }
         
         $form['fbconnect_button'] = array(
@@ -383,8 +383,7 @@ function fbconnect_get_fbuid($check_connected = FALSE) {
   
   $client = facebook_client();
 
-  if ($client && $session = $client->getSession()) {
-    $fbuid = $session['uid'];
+  if ($client && $fbuid = $client->getUser()) {
     
     if ($check_connected && $fbuid) {
       if (_get_user_fbuid($user->uid) != $fbuid) { 
@@ -423,7 +422,8 @@ function fbconnect_render_js() {
 function fbconnect_footer() {
   if (facebook_client() && !_fbconnect_is_excluded_page($_GET['q'])) {
     $config = fbconnect_get_config();
-    $footer = array();    
+    $footer = array(); 
+    $channel_uri = preg_replace("@'@msi", "\'", "http://".$_SERVER['HTTP_HOST']."/".drupal_get_path('module', 'fbconnect')."/channel.html");
     $footer['fb-init-code'] = <<<CODE
       <div id="fb-root"></div>
       <script type="text/javascript">
@@ -433,7 +433,9 @@ function fbconnect_footer() {
             status : true, // check login status
             cookie : true, // enable cookies to allow the server to access the session
             xfbml  : true,
-            logging: '$config[debug]'
+            logging: '$config[debug]',
+            channelURL: '$channel_uri',
+            oauth  : true
           });
           
           jQuery(document).trigger('fb:init');
@@ -844,6 +846,11 @@ function fbconnect_nodeapi(&$node, $op) {
 /**
  * The post-remove callback for facebook. Unlinks facebook account
  * from the linked drupal one.
+ * 
+ * I have specifically left this commented out because this may not be the
+ * behavior one wants when uninstalling a Facebook App. The result of
+ * actually executing such code means that upon subsequent adds of the app,
+ * a new brand new user would be re-created. - Dan Vu Quoc
  */
 function fbconnect_post_remove_callback() {
 //  if ($fb = facebook_client()) {
