diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java
index a9be0c569a79a55e38de8f052cb7d6101387fbbe..f6aaa6c3ff559d7d09c2c470231393c536d493c8 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/DataSetMetadataPanel.java
@@ -114,7 +114,7 @@ public class DataSetMetadataPanel extends JPanel implements Observer
         {
             if (file != null)
             {
-                if (file.getFile().exists() && file.validationRequired())
+                if (file.validationRequired())
                 {
                     file.markValidation();
                     return true;
@@ -162,7 +162,7 @@ public class DataSetMetadataPanel extends JPanel implements Observer
 
     private final JButton dataSetFileButton;
 
-    private final JButton dataSetFileRefreshButton;
+    private final JButton dataSetFileValidateButton;
 
     private final JRadioButton experimentButton;
 
@@ -211,7 +211,7 @@ public class DataSetMetadataPanel extends JPanel implements Observer
             { EMPTY_FILE_SELECTION };
         dataSetFileComboBox = new JComboBox(initialOptions);
         dataSetFileButton = new JButton("Browse...");
-        dataSetFileRefreshButton = new JButton("Refresh");
+        dataSetFileValidateButton = new JButton("Validate");
         dataSetFileLabel = new JLabel("File:", JLabel.TRAILING);
 
         validationErrors = new ErrorsPanel(mainWindow);
@@ -362,9 +362,9 @@ public class DataSetMetadataPanel extends JPanel implements Observer
                     }
                 }
             });
-        dataSetFileRefreshButton.setPreferredSize(new Dimension(90, BUTTON_HEIGHT));
-        dataSetFileRefreshButton.setToolTipText("File will be refreshed and revalidated");
-        dataSetFileRefreshButton.addActionListener(new ActionListener()
+        dataSetFileValidateButton.setPreferredSize(new Dimension(90, BUTTON_HEIGHT));
+        dataSetFileValidateButton.setToolTipText("File will be refreshed and revalidated");
+        dataSetFileValidateButton.addActionListener(new ActionListener()
             {
                 public void actionPerformed(ActionEvent e)
                 {
@@ -377,7 +377,7 @@ public class DataSetMetadataPanel extends JPanel implements Observer
                 }
             });
         addRow(1, dataSetFileLabel, dataSetFileComboBox, dataSetFileButton,
-                dataSetFileRefreshButton);
+                dataSetFileValidateButton);
 
         // The owner row
         ownerIdLabel.setPreferredSize(new Dimension(LABEL_WIDTH, BUTTON_HEIGHT));
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ExperimentPickerPanel.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ExperimentPickerPanel.java
index 41f8c71b5b2294f724eff6730bb839ef5ede16ee..91ed5dd05a99707789987d2f05e4976dae583e75 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ExperimentPickerPanel.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ExperimentPickerPanel.java
@@ -37,7 +37,19 @@ public class ExperimentPickerPanel extends JPanel
 {
     private static final long serialVersionUID = -8093481985680332715L;
 
-    private final JTextField textField = new JTextField();
+    private static class JTextFieldFireActionPerformedExposed extends JTextField
+    {
+        private static final long serialVersionUID = -7656053161479466883L;
+
+        @Override
+        public void fireActionPerformed()
+        {
+            super.fireActionPerformed();
+        }
+    }
+
+    private final JTextFieldFireActionPerformedExposed textField =
+            new JTextFieldFireActionPerformedExposed();
 
     private final JButton button = new JButton("...");
 
@@ -59,6 +71,7 @@ public class ExperimentPickerPanel extends JPanel
                     if (experimentId != null)
                     {
                         textField.setText(experimentId);
+                        textField.fireActionPerformed();
                     }
                 }
             });
@@ -86,6 +99,7 @@ public class ExperimentPickerPanel extends JPanel
     public void addFocusListener(FocusListener focusListener)
     {
         textField.addFocusListener(focusListener);
+        button.addFocusListener(focusListener);
     }
 
     @Override
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ValidatedFile.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ValidatedFile.java
index bad6b4b7c41345464a92d682c63514ad604249ec..75c0c21e08ee87712160aa61e3520df8ca76ee2b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ValidatedFile.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/gui/ValidatedFile.java
@@ -27,6 +27,8 @@ public class ValidatedFile
 
     private long lastValidated;
 
+    private boolean fileExisted = true;
+
     public ValidatedFile(File file)
     {
         this.file = file;
@@ -45,11 +47,18 @@ public class ValidatedFile
 
     public boolean validationRequired()
     {
-        return lastValidated < file.lastModified();
+        if (fileExisted)
+        {
+            return false == file.exists() || lastValidated < file.lastModified();
+        } else
+        {
+            return file.exists();
+        }
     }
 
     public void markValidation()
     {
+        fileExisted = file.exists();
         this.lastValidated = file.lastModified();
     }