diff --git a/beat/web/algorithms/admin.py b/beat/web/algorithms/admin.py
index 74f2f140f4bca2662aeb3394c78b47c333326a28..650ff196e0a3330da6da2d304d75d390d6416b62 100755
--- a/beat/web/algorithms/admin.py
+++ b/beat/web/algorithms/admin.py
@@ -125,10 +125,11 @@ class AlgorithmModelForm(forms.ModelForm):
     def clean(self):
         """Cleans-up the input data, make sure it overall validates"""
 
-        # make sure we don't pass back a str field as 'file'
         if 'declaration_file' in self.data and \
                 isinstance(self.data['declaration_file'], six.string_types):
-            self.data['declaration_file'] = ContentFile(self.data['declaration_file'], name='unsaved')
+            mutable_data = self.data.copy()
+            mutable_data['declaration_file'] = ContentFile(self.data['declaration_file'], name='unsaved')
+            self.data = mutable_data
 
 
 #----------------------------------------------------------