Ok. I fixed patch with execution parameter (patch 1d "Execution parameters settings"). Now it use all of its parameters:
Index: src/sdk/projectmanager.cpp
===================================================================
--- src/sdk/projectmanager.cpp	(revision 4921)
+++ src/sdk/projectmanager.cpp	(working copy)
@@ -1736,7 +1736,15 @@
 void ProjectManager::OnExecParameters(wxCommandEvent& event)
 {
     if (m_pActiveProject)
-        m_pActiveProject->SelectTarget(0, true);
+    {
+        //Get target name
+        wxString target;
+        if (!m_pActiveProject->GetDefaultExecuteTarget().IsEmpty())
+                target = m_pActiveProject->GetDefaultExecuteTarget();
+        else
+                target = m_pActiveProject->GetActiveBuildTarget();
+        m_pActiveProject->SelectTarget(m_pActiveProject->IndexOfBuildTargetName(target), true);
+    }
 }
 
 void ProjectManager::OnRightClick(wxCommandEvent& event)
Index: src/sdk/selecttargetdlg.cpp
===================================================================
--- src/sdk/selecttargetdlg.cpp	(revision 4921)
+++ src/sdk/selecttargetdlg.cpp	(working copy)
@@ -21,18 +21,29 @@
     #include "cbproject.h"
 #endif
 #include <wx/filedlg.h>
+#include <wx/valgen.h>
+#include <wx/arrimpl.cpp>
 #include "selecttargetdlg.h"
 
+struct SelectTargetStruct
+{
+	wxString txtBuildTarget;
+	bool isSetAsDefaultExec;
+	wxString txtParams;
+	wxString txtHostApp;
+};
+
+
+WX_DEFINE_OBJARRAY(ArrayOfSelectTargetStruct);
+
 BEGIN_EVENT_TABLE(SelectTargetDlg, wxDialog)
-	EVT_CHECKBOX(XRCID("chkSetAsDefaultExec"), SelectTargetDlg::OnCheckboxSelection)
 	EVT_LISTBOX(XRCID("lstItems"), SelectTargetDlg::OnListboxSelection)
-	EVT_LISTBOX_DCLICK(XRCID("lstItems"), SelectTargetDlg::OnListboxDClick)
+	EVT_LISTBOX_DCLICK(XRCID("lstItems"), SelectTargetDlg::OnListboxSelection)
 	EVT_BUTTON(XRCID("btnHostApplication"),	SelectTargetDlg::OnHostApplicationButtonClick)
 END_EVENT_TABLE()
 
 SelectTargetDlg::SelectTargetDlg(wxWindow* parent, cbProject* project, int selected)
-	: m_pProject(project),
-	m_Selected(selected)
+	: m_pProject(project), m_Selected(-1)
 {
 	//ctor
 	wxXmlResource::Get()->LoadDialog(this, parent, _T("dlgSelectTarget"));
@@ -43,14 +54,20 @@
 	{
 		ProjectBuildTarget* target = m_pProject->GetBuildTarget(i);
 		list->Append(target->GetTitle());
+		//Add project param to array
+		SelectTargetStruct t;
+		t.txtBuildTarget = target->GetTitle();
+		t.isSetAsDefaultExec = (target->GetTitle() == m_pProject->GetDefaultExecuteTarget());
+		t.txtParams = target->GetExecutionParameters();
+		t.txtHostApp = target->GetHostApplication();
+		m_ProjectParam.Add(t);
 	}
-	if (selected != -1)
-		list->SetSelection(selected);
-	else
-		list->SetSelection(list->FindString(m_pProject->GetDefaultExecuteTarget()));
 
+	// Check selection value
+	if (selected<0 || selected>=list->GetCount()) selected = 0;
+
+	list->SetSelection(selected);
 	UpdateSelected();
-	XRCCTRL(*this, "wxID_OK", wxButton)->MoveBeforeInTabOrder (XRCCTRL(*this, "lstItems", wxListBox));
 }
 
 SelectTargetDlg::~SelectTargetDlg()
@@ -60,22 +77,41 @@
 
 void SelectTargetDlg::UpdateSelected()
 {
-    wxString name = XRCCTRL(*this, "lstItems", wxListBox)->GetStringSelection();
-	ProjectBuildTarget* target = m_pProject->GetBuildTarget(name);
-	if (target)
+	//Save data in m_ProjectParam array
+	TransferDataFromWindow();
+
+	//Remove default check from other target
+	if (m_Selected != -1 && m_ProjectParam[m_Selected].isSetAsDefaultExec)
 	{
-        XRCCTRL(*this, "chkSetAsDefaultExec", wxCheckBox)->SetValue(name == m_pProject->GetDefaultExecuteTarget());
-		XRCCTRL(*this, "txtParams", wxTextCtrl)->SetValue(target->GetExecutionParameters());
-		XRCCTRL(*this, "txtHostApp", wxTextCtrl)->SetValue(target->GetHostApplication());
+		//Uncheck all options except selected
+		for (size_t i = 0; i < m_ProjectParam.Count(); ++i)
+		{
+			if ((int)i != m_Selected)
+				m_ProjectParam[i].isSetAsDefaultExec = false;
+		}
 	}
-	XRCCTRL(*this, "wxID_OK", wxButton)->Enable(target);
+
+	//Check list for empty (if this dialog show on empty project)
+	if (m_ProjectParam.Count() == 0)
+		return;
+
+	//Get current elem
+	m_Selected = XRCCTRL(*this, "lstItems", wxListBox)->GetSelection();
+	if (m_Selected==wxNOT_FOUND)
+	{
+		XRCCTRL(*this, "lstItems", wxListBox)->SetSelection(0);
+		m_Selected = 0;
+	}
+
+	//Set new validator
+	XRCCTRL(*this, "chkSetAsDefaultExec", wxCheckBox)->SetValidator(wxGenericValidator(&m_ProjectParam[m_Selected].isSetAsDefaultExec));
+	XRCCTRL(*this, "txtParams", wxTextCtrl)->SetValidator(wxGenericValidator(&m_ProjectParam[m_Selected].txtParams));
+	XRCCTRL(*this, "txtHostApp", wxTextCtrl)->SetValidator(wxGenericValidator(&m_ProjectParam[m_Selected].txtHostApp));
+
+	//Update data	
+	TransferDataToWindow();
 } // end of UpdateSelected
 
-ProjectBuildTarget* SelectTargetDlg::GetSelectionTarget()
-{
-    return m_pProject->GetBuildTarget(m_Selected);
-}
-
 // events
 
 void SelectTargetDlg::OnListboxSelection(wxCommandEvent& /*event*/)
@@ -83,21 +119,6 @@
 	UpdateSelected();
 } // end of OnListboxSelection
 
-void SelectTargetDlg::OnListboxDClick(wxCommandEvent& /*event*/)
-{
-    UpdateSelected();
-    EndModal(wxID_OK);
-} // end of OnListboxDClick
-
-void SelectTargetDlg::OnCheckboxSelection(wxCommandEvent& /*event*/)
-{
-    if (XRCCTRL(*this, "chkSetAsDefaultExec", wxCheckBox)->GetValue())
-    {
-        wxString name = XRCCTRL(*this, "lstItems", wxListBox)->GetStringSelection();
-        m_pProject->SetDefaultExecuteTarget(name);
-    }
-} // end of OnCheckboxSelection
-
 void SelectTargetDlg::OnHostApplicationButtonClick(wxCommandEvent& /*event*/)
 {
     if(wxTextCtrl* obj = XRCCTRL(*this, "txtHostApp", wxTextCtrl))
@@ -123,26 +144,26 @@
 
 void SelectTargetDlg::EndModal(int retCode)
 {
+    UpdateSelected();
     if (retCode == wxID_OK)
     {
-        m_Selected = XRCCTRL(*this, "lstItems", wxListBox)->GetSelection();
-        ProjectBuildTarget* target = m_pProject->GetBuildTarget(m_Selected);
-        if (target)
-        {
-            // Search all '\n' in the program-parameters and replace them by
-            // ' '. This is necessary because a multiline text control may add
-            // '\n' to the text but these characters must not be part of the
-            // parameters when executing the program.
-            wxString execution_parameters = XRCCTRL(*this, "txtParams", wxTextCtrl)->GetValue();
-            wxString::size_type pos = 0;
+	        m_pProject->SetDefaultExecuteTarget(wxEmptyString);
+		for (size_t i = 0; i < m_ProjectParam.Count(); ++i)
+		{
+			ProjectBuildTarget* target = m_pProject->GetBuildTarget(i);
+			// Search all '\n' in the program-parameters and replace them by
+			// ' '. This is necessary because a multiline text control may add
+			// '\n' to the text but these characters must not be part of the
+			// parameters when executing the program.
+			m_ProjectParam[i].txtParams.Replace(wxT("\n"), wxT(" "));
 
-            while ((pos = execution_parameters.find('\n', pos)) != wxString::npos)
-            {
-                execution_parameters[pos] = ' ';
-            }
-            target->SetExecutionParameters(execution_parameters);
-            target->SetHostApplication(XRCCTRL(*this, "txtHostApp", wxTextCtrl)->GetValue());
-        }
+			target->SetExecutionParameters(m_ProjectParam[i].txtParams);
+			target->SetHostApplication(m_ProjectParam[i].txtHostApp);
+			if (m_ProjectParam[i].isSetAsDefaultExec)
+			{
+				m_pProject->SetDefaultExecuteTarget(m_ProjectParam[i].txtBuildTarget);
+			}
+		}
     }
 	wxDialog::EndModal(retCode);
 } // end of EndModal
Index: src/include/selecttargetdlg.h
===================================================================
--- src/include/selecttargetdlg.h	(revision 4921)
+++ src/include/selecttargetdlg.h	(working copy)
@@ -7,10 +7,17 @@
 #define SELECTTARGETDLG_H
 
 #include <wx/dialog.h>
+#include <wx/dynarray.h>
 
 class cbProject;
 class ProjectBuildTarget;
 
+//Forward declaration for internal class storage
+class SelectTargetStruct;
+
+WX_DECLARE_OBJARRAY(SelectTargetStruct, ArrayOfSelectTargetStruct);
+
+//Dialog class for "Set program argument" menu item
 class SelectTargetDlg : public wxDialog
 {
 	public:
@@ -19,15 +26,14 @@
 
 		void EndModal(int retCode);
 		int GetSelection() const { return m_Selected; }
-		ProjectBuildTarget* GetSelectionTarget();
 	private:
 		void OnListboxSelection(wxCommandEvent& event);
-		void OnListboxDClick(wxCommandEvent& event);
-        void OnCheckboxSelection(wxCommandEvent& event);
         void OnHostApplicationButtonClick(wxCommandEvent& event);
 		void UpdateSelected();
+
 		cbProject* m_pProject;
 		int m_Selected;
+		ArrayOfSelectTargetStruct m_ProjectParam;
 
 		DECLARE_EVENT_TABLE()
 };
Index: src/include/cbproject.h
===================================================================
--- src/include/cbproject.h	(revision 4921)
+++ src/include/cbproject.h	(working copy)
@@ -666,13 +666,17 @@
           */
         virtual void ProjectFileRenamed(ProjectFile* pf);
 
+        /** Get index for target with name "targetName"
+          * @param targetName The name of the build target for search.
+          * @return Index of build target or -1 if not found.
+          */
+        int IndexOfBuildTargetName(const wxString& targetName) const;
     private:
         void Open();
         void ExpandVirtualBuildTargetGroup(const wxString& alias, wxArrayString& result) const;
         wxTreeItemId AddTreeNode(wxTreeCtrl* tree, const wxString& text, const wxTreeItemId& parent, bool useFolders, FileTreeData::FileTreeDataKind folders_kind, bool compiles, int image, FileTreeData* data = 0L);
         wxTreeItemId FindNodeToInsertAfter(wxTreeCtrl* tree, const wxString& text, const wxTreeItemId& parent, bool in_folders); // alphabetical sorting
         ProjectBuildTarget* AddDefaultBuildTarget();
-        int IndexOfBuildTargetName(const wxString& targetName) const;
         wxString CreateUniqueFilename();
         void NotifyPlugins(wxEventType type, const wxString& targetName = wxEmptyString, const wxString& oldTargetName = wxEmptyString);
         void CopyTreeNodeRecursively(wxTreeCtrl* tree, const wxTreeItemId& item, const wxTreeItemId& new_parent);