diff --git a/META-INF/plugin.xml b/META-INF/plugin.xml
index 11d844690..e73e6c7b9 100644
--- a/META-INF/plugin.xml
+++ b/META-INF/plugin.xml
@@ -20,6 +20,8 @@
 
   <extensions defaultExtensionNs="com.intellij">
     <php.typeProvider implementation="fr.adrienbrault.idea.symfony2plugin.SymfonyContainerTypeProvider"/>
+    <projectConfigurable instance="fr.adrienbrault.idea.symfony2plugin.SettingsForm" />
+    <projectService serviceImplementation="fr.adrienbrault.idea.symfony2plugin.Settings" />
   </extensions>
 
   <depends>com.jetbrains.php</depends>
diff --git a/src/fr/adrienbrault/idea/symfony2plugin/Settings.java b/src/fr/adrienbrault/idea/symfony2plugin/Settings.java
new file mode 100644
index 000000000..384db4ba7
--- /dev/null
+++ b/src/fr/adrienbrault/idea/symfony2plugin/Settings.java
@@ -0,0 +1,46 @@
+package fr.adrienbrault.idea.symfony2plugin;
+
+import com.intellij.openapi.components.*;
+import com.intellij.openapi.project.Project;
+import com.intellij.util.xmlb.XmlSerializerUtil;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.HashMap;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: Lumbendil
+ * Date: 7/04/13
+ * Time: 20:02
+ * To change this template use File | Settings | File Templates.
+ */
+@State(
+       name = "Settings",
+       storages = {
+               @Storage(id = "default", file="$PROJECT_CONFIG_DIR$/symfony2.xml", scheme = StorageScheme.DIRECTORY_BASED)
+       }
+)
+public class Settings implements PersistentStateComponent<Settings> {
+    public String pathToProjectContainer = "app/cache/dev/appDevDebugProjectContainer.xml";
+    protected Project project;
+
+    public static Settings getInstance(Project project)
+    {
+        Settings settings = ServiceManager.getService(project, Settings.class);
+
+        settings.project = project;
+
+        return settings;
+    }
+
+    @Nullable
+    @Override
+    public Settings getState() {
+        return this;
+    }
+
+    @Override
+    public void loadState(Settings settings) {
+        XmlSerializerUtil.copyBean(settings, this);
+    }
+}
diff --git a/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java b/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java
new file mode 100644
index 000000000..22cbba795
--- /dev/null
+++ b/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java
@@ -0,0 +1,80 @@
+package fr.adrienbrault.idea.symfony2plugin;
+
+import com.intellij.openapi.options.Configurable;
+import com.intellij.openapi.options.ConfigurationException;
+import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.Nls;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import javax.swing.*;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: Lumbendil
+ * Date: 7/04/13
+ * Time: 20:11
+ * To change this template use File | Settings | File Templates.
+ */
+public class SettingsForm implements Configurable {
+    private Project project;
+    private JTextField pathToProjectPanel;
+
+    public SettingsForm(@NotNull final Project project)
+    {
+        this.project = project;
+    }
+
+    @Nls
+    @Override
+    public String getDisplayName() {
+        return "Symfony2";
+    }
+
+    @Nullable
+    @Override
+    public String getHelpTopic() {
+        return null;
+    }
+
+    @Nullable
+    @Override
+    public JComponent createComponent() {
+        JLabel label = new JLabel("Path to appDevDebugProjectContainer.xml: ");
+        pathToProjectPanel = new JTextField(getSettings().pathToProjectContainer, 35);
+
+        label.setLabelFor(pathToProjectPanel);
+
+        JPanel panel = new JPanel();
+
+        panel.add(label);
+        panel.add(pathToProjectPanel);
+
+        return panel;
+    }
+
+    @Override
+    public boolean isModified() {
+        return true;
+    }
+
+    @Override
+    public void apply() throws ConfigurationException {
+        getSettings().pathToProjectContainer = pathToProjectPanel.getText();
+    }
+
+    @Override
+    public void reset() {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
+    public void disposeUIResources() {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    private Settings getSettings()
+    {
+        return Settings.getInstance(project);
+    }
+}
diff --git a/src/fr/adrienbrault/idea/symfony2plugin/SymfonyContainerTypeProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/SymfonyContainerTypeProvider.java
index 3a580e474..6715a0867 100644
--- a/src/fr/adrienbrault/idea/symfony2plugin/SymfonyContainerTypeProvider.java
+++ b/src/fr/adrienbrault/idea/symfony2plugin/SymfonyContainerTypeProvider.java
@@ -91,7 +91,7 @@ private String getServiceId(MethodReferenceImpl e) {
     private Map<String, String>getServicesMap(Project project) {
         Map<String, String> map = new HashMap<String, String>();
 
-        String defaultServiceMapFilePath = project.getBasePath() + "/app/cache/dev/appDevDebugProjectContainer.xml";
+        String defaultServiceMapFilePath = project.getBasePath() + Settings.getInstance(project).pathToProjectContainer;
         File xmlFile = new File(defaultServiceMapFilePath);
         if (!xmlFile.exists()) {
             return map;