diff --git a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h
index d9da68fd31e109f4af7bcc1d9cd42056d547dc9f..3235c0870932f9696b13f56341f771fafead9031 100644
--- a/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h
+++ b/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/EnggDiffraction/EnggDiffractionViewQtGUI.h
@@ -159,8 +159,6 @@ public:
                              bool focused);
 
 
-  void setBankDir(QString path);
-
   std::vector<std::string> splitFittingDirectory(Poco::Path selectedfPath);
 
   std::string fittingRunNoFactory(std::string bank, std::string fileName,
@@ -246,6 +244,7 @@ private slots:
   void fittingListWidgetBank(int idx);
   void setListWidgetBank(int idx);
   void fittingRunNoChanged();
+  void setBankDir(int idx);
 
   // show the standard Mantid help window with this interface's help
   void openHelpWin();
diff --git a/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp b/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp
index 686e8c4f239801fe5a902335c5625164653d04ca..7603eddc8156ae51a8caaac832c1de0bb820ea06 100644
--- a/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp
+++ b/MantidQt/CustomInterfaces/src/EnggDiffraction/EnggDiffractionViewQtGUI.cpp
@@ -211,19 +211,23 @@ void EnggDiffractionViewQtGUI::doSetupTabFitting() {
   connect(m_uiTabFitting.comboBox_bank, SIGNAL(currentIndexChanged(int)), this,
           SLOT(setListWidgetBank(int)));
 
+  connect(m_uiTabFitting.listWidget_fitting_bank_preview,
+	  SIGNAL(currentRowChanged(int)), this,
+	  SLOT(fittingListWidgetBank(int)));
+
+  connect(m_uiTabFitting.listWidget_fitting_bank_preview,
+	  SIGNAL(currentRowChanged(int)), this, SLOT(setBankIdComboBox(int)));
+
+  /// shahroz
+  connect(m_uiTabFitting.comboBox_bank, SIGNAL(currentIndexChanged(int)), this,
+	  SLOT(setBankDir(int)));
+
   connect(m_uiTabFitting.pushButton_fitting_browse_peaks, SIGNAL(released()),
           this, SLOT(browsePeaksToFit()));
 
   connect(m_uiTabFitting.pushButton_fit, SIGNAL(released()), this,
           SLOT(fitClicked()));
 
-  connect(m_uiTabFitting.listWidget_fitting_bank_preview,
-          SIGNAL(currentRowChanged(int)), this,
-          SLOT(fittingListWidgetBank(int)));
-
-  connect(m_uiTabFitting.listWidget_fitting_bank_preview,
-          SIGNAL(currentRowChanged(int)), this, SLOT(setBankIdComboBox(int)));
-
   connect(m_uiTabFitting.lineEdit_pushButton_run_num, SIGNAL(editingFinished()),
           SLOT(fittingRunNoChanged()));
 
@@ -675,46 +679,12 @@ double EnggDiffractionViewQtGUI::rebinningPulsesTime() const {
 }
 
 /// shahroz
-void EnggDiffractionViewQtGUI::setBankDir(QString path) {
-  // m_fitting_bank_Id
-  QString rPath;
-  std::string dir = path.toStdString();
-  Poco::Path fpath(dir);
-
-  std::string bank1Dir;
-  std::string bank2Dir;
-  std::string bank3Dir;
-
-  if (fpath.isFile()) {
-    std::string fileName = fpath.getBaseName();
-    std::string fileDir = fpath.parent().toString();
-
-    if (fileName.find("bank_1") != std::string::npos && m_fitting_bank_Id == 0) {
-      bank1Dir = path;
-    } else {
-      bank1Dir = fittingRunNoFactory("1", fileName, bank1Dir, fileDir);
-    }
+void EnggDiffractionViewQtGUI::setBankDir(int idx) {
 
-    if (fileName.find("bank_2") != std::string::npos && m_fitting_bank_Id == 1) {
-      bank2Dir = path;
-    } else {
-      bank2Dir = fittingRunNoFactory("2", fileName, bank2Dir, fileDir);
-    }
+  std::string bankDir = m_fitting_runno_dir_vec[idx];
+  Poco::Path fpath(bankDir);
 
-    if (fileName.find("bank_3") != std::string::npos && m_fitting_bank_Id == 2) {
-      bank3Dir = path;
-    } else {
-      bank3Dir = fittingRunNoFactory("3", fileName, bank3Dir, fileDir);
-    }
-  }
-
-  if (m_fitting_bank_Id == 0) {
-    setfittingRunNo(QString::fromUtf8(bank1Dir.c_str()));
-  } else if (m_fitting_bank_Id == 1) {
-    setfittingRunNo(QString::fromUtf8(bank2Dir.c_str()));
-  } else if (m_fitting_bank_Id == 2) {
-    setfittingRunNo(QString::fromUtf8(bank3Dir.c_str()));
-  }
+  setfittingRunNo(QString::fromUtf8(bankDir.c_str()));
 }
 
 std::string EnggDiffractionViewQtGUI::fittingRunNoFactory(std::string bank,
@@ -1337,9 +1307,6 @@ void MantidQt::CustomInterfaces::EnggDiffractionViewQtGUI::
 
   if (selectedfPath.isFile()) {
 
-    std::vector<std::string> splitBaseName =
-        splitFittingDirectory(selectedfPath);
-
 #ifdef __unix__
     Poco::Path home("C:\\");
     bankDir.append(home);
@@ -1349,6 +1316,9 @@ void MantidQt::CustomInterfaces::EnggDiffractionViewQtGUI::
     bankDir = (bankDir).expand(selectedfPath.parent().toString());
 #endif
 
+	std::vector<std::string> splitBaseName =
+		splitFittingDirectory(selectedfPath);
+
     std::string cwd(bankDir.toString());
     Poco::DirectoryIterator it(cwd);
     Poco::DirectoryIterator end;
@@ -1358,13 +1328,13 @@ void MantidQt::CustomInterfaces::EnggDiffractionViewQtGUI::
         Poco::Path itBankfPath(itFilePath);
 
         std::string itbankFileName = itBankfPath.getBaseName();
+		// check if it not any other file.. e.g: texture
+		std::string foc_file = splitBaseName[0] + "_" + splitBaseName[1] +
+			"_" + splitBaseName[2] + "_" +
+			splitBaseName[3];
+        if (itbankFileName.find(foc_file) != std::string::npos) {
 
-        if (itbankFileName.find(splitBaseName[0] + "_" + splitBaseName[1] +
-                                "_" + splitBaseName[2] + "_" +
-                                splitBaseName[3]) != std::string::npos &&
-            m_fitting_bank_Id == 0) {
-
-			m_fitting_runno_dir_vec.push_back(itFilePath);
+          m_fitting_runno_dir_vec.push_back(itFilePath);
         }
       }
       ++it;
@@ -1378,11 +1348,13 @@ void MantidQt::CustomInterfaces::EnggDiffractionViewQtGUI::
 
       for (size_t i = 0; i < m_fitting_runno_dir_vec.size(); i++) {
         Poco::Path vecFile(m_fitting_runno_dir_vec[i]);
+		// split the directory from m_fitting_runno_dir_vec
         std::vector<std::string> vecFileSplit = splitFittingDirectory(vecFile);
+		// assign the file bank id
         std::string bankID = (vecFileSplit[vecFileSplit.size() - 1]);
-        std::string bankNo;
+      
+		std::string bankNo;
         bool isDigit = false;
-
         for (size_t i = 0; i < bankID.size(); i++) {
           char *str = &bankID[i];
           if (std::isdigit(*str)) {
@@ -1401,10 +1373,12 @@ void MantidQt::CustomInterfaces::EnggDiffractionViewQtGUI::
           m_uiTabFitting.listWidget_fitting_bank_preview->addItem(
               QString("%1").arg(i + 1));
         }
-
-        m_uiTabFitting.comboBox_bank->setEnabled(true);
-        m_uiTabFitting.listWidget_fitting_bank_preview->setEnabled(true);
       }
+      m_uiTabFitting.comboBox_bank->setEnabled(true);
+      m_uiTabFitting.listWidget_fitting_bank_preview->setEnabled(true);
+    } else {
+      m_uiTabFitting.comboBox_bank->setEnabled(false);
+      m_uiTabFitting.listWidget_fitting_bank_preview->setEnabled(false);
     }
   }
 }