--- a/OSSEval/analysis/views.py
+++ b/OSSEval/analysis/views.py
@@ -30,18 +30,21 @@
         form = AnalysisForm(request.POST)
         if form.is_valid():
             if reverse('analysis_new') in request.META['HTTP_REFERER']:
+                methodology_version = MethodologyVersion.objects.get(pk=request.POST['methodology_version'])
+                weight_scenarios = methodology_version.weightscenario_set.filter(active=True)
+                if len(weight_scenarios) != 1:
+                    raise Exception("There should be exactly one active WeightScenario for MethodologyVersion " + str(methodology_version.id))
                 # creating a new 
-                model_instance = form.save()
-                model_instance.visible = True
-                weight_scenarios = model_instance.methodology_version.weightscenario_set.filter(active=True) 
-                if len(weight_scenarios) == 1:
-                    model_instance.weight_scenario = weight_scenarios[0]
-                else:
-                    raise Exception("There should be exactly one active WeightScenario for MethodologyVersion " + str(model_instance.methodology_version.id))
-                model_instance.protected = False
-                model_instance.created = timezone.now()
-                model_instance.save()
-                return HttpResponseRedirect(reverse('analysis_detail', args=(model_instance.pk,)))
+                a = Analysis()
+                a.name = form.cleaned_data['name']
+                a.description = form.cleaned_data['description']
+                a.comment = form.cleaned_data['comment']
+                a.created = form.cleaned_data['created']
+                a.methodology_version = form.cleaned_data['methodology_version']
+                a.weight_scenario = weight_scenarios[0]
+                a.user_login = form.cleaned_data['user_login']
+                a.save()
+                return HttpResponseRedirect(reverse('analysis_detail', args=(a.id,)))
             else:
                 # editing an existing one
                 id = request.META['HTTP_REFERER'].rsplit('/')[len(request.META['HTTP_REFERER'].rsplit('/'))-1]
@@ -52,8 +55,6 @@
                 a.created = form.cleaned_data['created']
                 a.methodology_version = form.cleaned_data['methodology_version']
                 a.user_login = form.cleaned_data['user_login']
-                a.visible = form.cleaned_data['visible']
-                a.protected = form.cleaned_data['protected']
                 a.save()
                 return HttpResponseRedirect(reverse('analysis_detail', args=(a.id,)))
     else:
@@ -71,7 +72,6 @@
                 model_instance.weight_scenario = weight_scenarios[0]
             else:
                 raise Exception("There should be exactly one active WeightScenario for MethodologyVersion " + str(model_instance.methodology_version.id))
-            model_instance.protected = False
             model_instance.created = timezone.now()
             model_instance.save()
             return HttpResponseRedirect(reverse('analysis_list'))
@@ -208,9 +208,15 @@
             search_url = SearchEngine.search_url(q, sites)
             search_engine_name = SearchEngine.search__engine_name()
             description += "<a target='_blank' href='" + search_url + "'>'" + SearchEngine.readable_query(q, sites) + "' on " + search_engine_name + ": (" + search_count + " results)</a><br>"
-        # eval_description and eval_value might use the results from the above queries so have to be run after them 
-        exec(question.eval_description)
-        exec(question.eval_value)
+        # eval_description and eval_value might use the results from the above queries so have to be run after them
+        try:
+            exec(question.eval_description)
+        except Exception as ex:
+            print str(ex)
+        try:
+            exec(question.eval_value)
+        except:
+            pass
         q = {}
         q["question_id"] = question.id
         print "question.id: " + str(question.id)