Index: branches/version-2_11-dev/data/class/SC_CheckError.php
===================================================================
--- branches/version-2_11-dev/data/class/SC_CheckError.php	(revision 20848)
+++ branches/version-2_11-dev/data/class/SC_CheckError.php	(revision 20910)
@@ -1124,4 +1124,5 @@
         switch($register_user_flg) {
             case 1:
+            case 3:
                 $this->arrErr[$value[1]] .= "※ すでに会員登録で使用されている" . $value[0] . "です。<br />";
                 break;
Index: branches/version-2_11-dev/data/class/pages/entry/LC_Page_Entry_EmailMobile.php
===================================================================
--- branches/version-2_11-dev/data/class/pages/entry/LC_Page_Entry_EmailMobile.php	(revision 20848)
+++ branches/version-2_11-dev/data/class/pages/entry/LC_Page_Entry_EmailMobile.php	(revision 20910)
@@ -119,4 +119,5 @@
         $objErr->arrErr = $objFormParam->checkError();
 
+        // FIXME: lfInitParam() で設定すれば良いように感じる
         $objErr->doFunc(array("メールアドレス", "email_mobile"), array("CHECK_REGIST_CUSTOMER_EMAIL"));
 
Index: branches/version-2_11-dev/data/class/helper/SC_Helper_Customer.php
===================================================================
--- branches/version-2_11-dev/data/class/helper/SC_Helper_Customer.php	(revision 20885)
+++ branches/version-2_11-dev/data/class/helper/SC_Helper_Customer.php	(revision 20910)
@@ -148,19 +148,25 @@
      * @return integer  0:登録可能     1:登録済み   2:再登録制限期間内削除ユーザー  3:自分のアドレス
      */
-    function sfCheckRegisterUserFromEmail($email){
-        $return = 0;
-
-        $objCustomer    = new SC_Customer_Ex();
-        $objQuery       =& SC_Query_Ex::getSingletonInstance();
-
-        $arrRet         = $objQuery->select("email, update_date, del_flg",
-                                            "dtb_customer",
-                                            "email = ? OR email_mobile = ? ORDER BY del_flg",
-                                            array($email, $email));
-
-        if(count($arrRet) > 0) {
-            if($arrRet[0]['del_flg'] != '1') {
-                // 会員である場合
-                $return = 1;
+    function sfCheckRegisterUserFromEmail($email) {
+        $objCustomer = new SC_Customer_Ex();
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+
+        // ログインしている場合、すでに登録している自分のemailの場合
+        if ($objCustomer->isLoginSuccess(true)
+            && SC_Helper_Customer_Ex::sfCustomerEmailDuplicationCheck($objCustomer->getValue('customer_id'), $email)) {
+            // 自分のアドレス
+            return 3;
+        }
+
+        $arrRet = $objQuery->select("email, update_date, del_flg",
+            "dtb_customer",
+            "email = ? OR email_mobile = ? ORDER BY del_flg",
+            array($email, $email));
+
+        if (count($arrRet) > 0) {
+            // 会員である場合
+            if ($arrRet[0]['del_flg'] != '1') {
+                // 登録済み
+                return 1;
             } else {
                 // 退会した会員である場合
@@ -171,16 +177,12 @@
                 $limit_time = ENTRY_LIMIT_HOUR * 3600;
                 if($pass_time < $limit_time) {
-                    $return = 2;
+                    // 再登録制限期間内削除ユーザー
+                    return 2;
                 }
             }
         }
 
-        // ログインしている場合、すでに登録している自分のemailの場合はエラーを返さない
-        if ($objCustomer->getValue('customer_id')){
-            if (SC_Helper_Customer_Ex::sfCustomerEmailDuplicationCheck($objCustomer->getValue('customer_id'), $email)) {
-                $return = 3;
-            }
-        }
-        return $return;
+        // 登録可能
+        return 0;
     }
 
@@ -195,13 +197,14 @@
      */
     function sfCustomerEmailDuplicationCheck($customer_id, $email) {
-        $objQuery   =& SC_Query_Ex::getSingletonInstance();
-        $arrResults = $objQuery->getRow("email, email_mobile",
-                                        "dtb_customer", "customer_id = ?",
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+
+        $arrResults = $objQuery->getRow('email, email_mobile',
+                                        'dtb_customer', 'customer_id = ?',
                                         array($customer_id));
-        if ($email == $arrResults['email']
-            || $email == $arrResults["email_mobile"]) {
-            return true;
-        }
-        return false;
+        $return =
+               strlen($arrResults['email']) >= 1 && $email === $arrResults['email']
+            || strlen($arrResults['email_mobile']) >= 1 &&  $email === $arrResults['email_mobile']
+        ;
+        return $return;
     }
 
@@ -311,5 +314,5 @@
         SC_Helper_Customer_Ex::sfCustomerCommonParam($objFormParam);
         SC_Helper_Customer_Ex::sfCustomerRegisterParam($objFormParam, $isAdmin);
-        if($isAdmin) {
+        if ($isAdmin) {
             $objFormParam->addParam("顧客ID", "customer_id", INT_LEN, 'n', array("NUM_CHECK"));
             $objFormParam->addParam('携帯メールアドレス', "email_mobile", null, 'a', array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MOBILE_EMAIL_CHECK"));
@@ -317,5 +320,4 @@
             $objFormParam->addParam("SHOP用メモ", 'note', LTEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK"));
             $objFormParam->addParam("所持ポイント", 'point', INT_LEN, 'n', array("NUM_CHECK"));
-
         }
 
@@ -429,18 +431,4 @@
         $objErr = SC_Helper_Customer_Ex::sfCustomerRegisterErrorCheck($objErr);
 
-        /*
-         * sfCustomerRegisterErrorCheck() では, ログイン中の場合は重複チェック
-         * されないので, 再度チェックを行う
-         */
-        $objCustomer = new SC_Customer_Ex();
-        if ($objCustomer->isLoginSuccess(true)
-            && SC_Helper_Customer_Ex::sfCustomerEmailDuplicationCheck($objCustomer->getValue('customer_id'), $objFormParam->getValue('email'))) {
-            $objErr->arrErr['email'] .= "※ すでに会員登録で使用されているメールアドレスです。<br />";
-        }
-        if ($objCustomer->isLoginSuccess(true)
-            && SC_Helper_Customer_Ex::sfCustomerEmailDuplicationCheck($objCustomer->getValue('customer_id'), $objFormParam->getValue('email_mobile'))) {
-            $objErr->arrErr['email_mobile'] .= "※ すでに会員登録で使用されているメールアドレスです。<br />";
-        }
-
         return $objErr->arrErr;
     }
@@ -507,6 +495,6 @@
         $objErr->doFunc(array("生年月日", 'year', 'month', 'day'), array("CHECK_BIRTHDAY"));
 
-        if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE){
-            if(!$isAdmin) {
+        if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) {
+            if (!$isAdmin) {
                 $objErr->doFunc(array('パスワード', 'パスワード(確認)', 'password', "password02") ,array("EQUAL_CHECK"));
                 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', "email02") ,array("EQUAL_CHECK"));
@@ -515,9 +503,8 @@
         }
 
-        if(!$isAdmin) {
+        if (!$isAdmin) {
             // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可
             $objErr->doFunc(array("メールアドレス", 'email'), array("CHECK_REGIST_CUSTOMER_EMAIL"));
             $objErr->doFunc(array("携帯メールアドレス", 'email_mobile'), array("CHECK_REGIST_CUSTOMER_EMAIL", "MOBILE_EMAIL_CHECK"));
-
         }
         return $objErr;
