diff --git a/beat/web/algorithms/admin.py b/beat/web/algorithms/admin.py
old mode 100644
new mode 100755
index 50feac2e20a9a8a1bb5b2f09fe6ea791f3f921e4..f03412a9e5bece1e299670b6d1b0fd1a7039e81e
--- a/beat/web/algorithms/admin.py
+++ b/beat/web/algorithms/admin.py
@@ -90,6 +90,13 @@ class AlgorithmModelForm(forms.ModelForm):
                     ),
                 }
 
+
+    def __init__(self, *args, **kwargs):
+        super(AlgorithmModelForm, self).__init__(*args, **kwargs)
+
+        if kwargs['instance'].is_binary():
+            del self.fields['source_code_file']
+
     def clean_declaration_file(self):
         """Cleans-up the file data, make sure it is really new"""
 
@@ -231,4 +238,12 @@ class Algorithm(admin.ModelAdmin):
           ),
         )
 
+    def get_form(self, request, obj=None, **kwargs):
+        if obj.is_binary():
+            self.exclude = ('source_code_file',)
+            fieldsets = filter(lambda x: x[0] == 'Definition',self.fieldsets)[0]
+            fieldsets[1]['fields'] = ('hash', 'splittable', 'declaration_file', 'language')
+        form = super(Algorithm, self).get_form(request, obj, **kwargs)
+        return form
+
 admin.site.register(AlgorithmModel, Algorithm)