diff --git a/beat/web/toolchains/admin.py b/beat/web/toolchains/admin.py
index 95822f7541057038d64278ea10aba7d1eedf7d35..037a699c84239f263b056dd4ee7c7f4148c8ff01 100644
--- a/beat/web/toolchains/admin.py
+++ b/beat/web/toolchains/admin.py
@@ -100,7 +100,9 @@ class ToolchainModelForm(forms.ModelForm):
         # 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
 
 
 #----------------------------------------------------------