Index: phpbbforum.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/phpbbforum/phpbbforum.module,v
retrieving revision 1.60
diff -u -p -r1.60 phpbbforum.module
--- phpbbforum.module	13 Feb 2011 14:05:54 -0000	1.60
+++ phpbbforum.module	17 Feb 2011 18:59:59 -0000
@@ -2868,36 +2868,41 @@ function phpbbforum_external_login_regis
     $account = user_load(array('name' => $login));
   }
 
-  if (!$account->uid) { // Register new user
-    if (db_result(db_query("SELECT uid FROM {users} WHERE LOWER(mail) = LOWER('%s') AND uid <> %d", $login, $account->uid))) {
-      $message = 'The phpBB username %name has already been taken by another user.';
-      //_phpbbforum_watchdog($message, $var);
-      _phpbbforum_set_message($message, $var);
-      return false;
-    }
+  if (!$account->uid) {
+    if (variable_get('phpbbforum_master', 0)) { // Register new user in Drupal
+      if (db_result(db_query("SELECT uid FROM {users} WHERE LOWER(mail) = LOWER('%s') AND uid <> %d", $login, $account->uid))) {
+	$message = 'The phpBB username %name has already been taken by another user.';
+	//_phpbbforum_watchdog($message, $var);
+	_phpbbforum_set_message($message, $var);
+	return false;
+      }
 
-    $account = user_save('', array(
-      'name' => $login,
-      'mail' => $email,
-      'timezone' => $phpbb_user->data['user_timezone'] * 60 * 60,
-      'init' => $email,
-      'status' => $status,
-      'roles' => $roles,
-    ));
+      $account = user_save('', array(
+	'name' => $login,
+	'mail' => $email,
+	'timezone' => $phpbb_user->data['user_timezone'] * 60 * 60,
+	'init' => $email,
+	'status' => $status,
+	'roles' => $roles,
+      ));
+
+      if (!$account) {
+	//drupal_set_message(t("Error saving user account."), 'error');
+	return false;
+      }
+      //$message = 'Successfully registered new user: %name.';
+      $message = 'New user: %name (%email).';
+      $var = array(
+	'%name' => $login,
+	'%email' => $email,
+      );
+      _phpbbforum_watchdog($message, $var, WATCHDOG_NOTICE, l('edit', 'user/' . $account->uid . '/edit'));
+      _phpbbforum_set_message($message, $var);
 
-    if (!$account) {
-      //drupal_set_message(t("Error saving user account."), 'error');
+    }
+    else { // stray phpbb user should not be synced to drupal
       return false;
     }
-    //$message = 'Successfully registered new user: %name.';
-    $message = 'New user: %name (%email).';
-    $var = array(
-      '%name' => $login,
-      '%email' => $email,
-    );
-    _phpbbforum_watchdog($message, $var, WATCHDOG_NOTICE, l('edit', 'user/' . $account->uid . '/edit'));
-    _phpbbforum_set_message($message, $var);
-
   }
 
   if ($account->status == 0 && empty($passwd)) {
