Index: src/org/mifos/application/accounts/savings/struts/action/SavingsDepositWithdrawalAction.java
===================================================================
--- src/org/mifos/application/accounts/savings/struts/action/SavingsDepositWithdrawalAction.java	(revision 12248)
+++ src/org/mifos/application/accounts/savings/struts/action/SavingsDepositWithdrawalAction.java	(working copy)
@@ -142,15 +142,32 @@
 				+ savings.getAccountId());
 		SavingsDepositWithdrawalActionForm actionForm = (SavingsDepositWithdrawalActionForm) form;
 		if (actionForm.getTrxnTypeId() != null
-				&& actionForm.getTrxnTypeId() != "") {
+				&& actionForm.getTrxnTypeId() != Constants.EMPTY_STRING) {
 			Short trxnTypeId = Short.valueOf(actionForm.getTrxnTypeId());
+			// added for defect 1587 [start]
+			AcceptedPaymentTypePersistence persistence = new AcceptedPaymentTypePersistence();
+			UserContext uc = (UserContext) SessionUtils.getAttribute(
+					Constants.USER_CONTEXT_KEY, request.getSession());
+			// added for defect 1587 [end]
 			if (trxnTypeId.equals(AccountActionTypes.SAVINGS_DEPOSIT.getValue())) {
 				if (actionForm.getCustomerId() != null
-						&& actionForm.getCustomerId() != "")
+						&& actionForm.getCustomerId() != Constants.EMPTY_STRING)
 					actionForm.setAmount(savings.getTotalPaymentDue(Integer
 							.valueOf(actionForm.getCustomerId())).toString());
+				// added for defect 1587 [start]				
+				SessionUtils.setCollectionAttribute(MasterConstants.PAYMENT_TYPE,
+						persistence.getAcceptedPaymentTypesForATransaction(
+								uc.getLocaleId(),
+								TrxnTypes.savings_deposit.getValue()), request);
+				// added for defect 1587 [end]
 			} else {
 				actionForm.setAmount(new Money().toString());
+				// added for defect 1587 [start]				
+				SessionUtils.setCollectionAttribute(MasterConstants.PAYMENT_TYPE,
+						persistence.getAcceptedPaymentTypesForATransaction(
+								uc.getLocaleId(),
+								TrxnTypes.savings_withdrawal.getValue()), request);
+				// added for defect 1587 [end]
 			}
 		}
 		return mapping.findForward(ActionForwards.load_success.toString());
@@ -221,7 +238,7 @@
 		actionForm.setPaymentTypeId(null);
 		actionForm.setTrxnTypeId(null);
 		actionForm.setCustomerId(null);
-		actionForm.setAmount("");
+		actionForm.setAmount(Constants.EMPTY_STRING);
 	}
 
 	private PaymentData createPaymentData(
Index: test/org/mifos/application/accounts/savings/struts/action/TestSavingsDepositWithdrawalAction.java
===================================================================
--- test/org/mifos/application/accounts/savings/struts/action/TestSavingsDepositWithdrawalAction.java	(revision 12248)
+++ test/org/mifos/application/accounts/savings/struts/action/TestSavingsDepositWithdrawalAction.java	(working copy)
@@ -195,6 +195,23 @@
 		verifyForward("load_success");
 	}
 	
+	// added for defect 1587 [start]
+	public void testSuccessfullReLoad_Withdrawal() throws Exception {
+		createCenterAndGroup();
+		savingsOffering = helper.createSavingsOffering("asfddsf","213a");
+		savings = helper.createSavingsAccount("000X00000000017", savingsOffering, group, AccountStates.SAVINGS_ACC_APPROVED, userContext);
+		HibernateUtil.closeSession();
+		
+		savings = new SavingsPersistence().findById(savings.getAccountId());
+		SessionUtils.setAttribute(Constants.BUSINESS_KEY, savings,request);
+		setRequestPathInfo("/savingsDepositWithdrawalAction.do");
+		addRequestParameter("method", "reLoad");
+		addRequestParameter("trxnTypeId", String.valueOf(AccountActionTypes.SAVINGS_WITHDRAWAL.getValue()));
+		actionPerform();
+		verifyForward("load_success");
+	}
+	// added for defect 1587 [end]
+	
 	public void testFailurePreview() throws Exception {
 		createCenterAndGroup();
 		savingsOffering = helper.createSavingsOffering("asfddsf","213a");
