diff --git a/projecthandler/template/project/modal/project_new.html b/projecthandler/template/project/modal/project_new.html
index df652d7..f1713ec 100644
--- a/projecthandler/template/project/modal/project_new.html
+++ b/projecthandler/template/project/modal/project_new.html
@@ -26,14 +26,14 @@
             <div class="modal-body">
 
                 <div class="form-group" id="div_chose_id" >
-                    <label for="name" class="col-sm-3 control-label">Project Name* : </label>
+                    <label for="name" class="col-sm-3 control-label">Project Name* </label>
                     <input name="name" id="name"  size="40" maxlength="20"required/>
                 </div>
 
-                <div class="form-group">
-                    <label for="domain_name" class="col-sm-3 control-label">Domain Name: </label>
+                <div class="form-group" id="domainNameGroupDiv">
+                    <label for="domain_name" class="col-sm-3 control-label">Domain Name* </label>
                     <div class="col-sm-6">
-                        <select required id="domain_name" class="js-example-basic form-control" name="domain_name">
+                        <select id="domain_name" class="js-example-basic form-control" name="domain_name" required>
                         </select>
                     </div>
                 </div>
diff --git a/projecthandler/template/project/projectlist.html b/projecthandler/template/project/projectlist.html
index 5423aa1..61043ba 100644
--- a/projecthandler/template/project/projectlist.html
+++ b/projecthandler/template/project/projectlist.html
@@ -160,31 +160,50 @@
     </script>
     <script>
     function showModalNewProject(args){
-        select2_groups = $('#domain_name').select2({
-            placeholder: 'Select Domain',
-            width: '100%',
-            ajax: {
-                url: args.domains_list_url,
-                dataType: 'json',
-                processResults: function (data) {
-                    domains_list = [];
-                    if (data['domains']) {
-                        for (d in data['domains']) {
-                            var domain = data['domains'][d];
-                            if( domain.endsWith(':ro') === false) {
-                                domains_list.push({ id: domain, text: domain })
-                            }
-                            
+        var dialog = bootbox.dialog({
+            message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
+            closeButton: false
+        });
+        $.ajax({
+            url: args.domains_list_url,
+            dataType: "json",
+            contentType: "application/json;charset=utf-8",
+            success: function (result_domain) {
+                domains_list = [];
+                $('#domain_name').prop('disabled', false).trigger('change');
+                if (result_domain['domains']) {
+                    for (d in result_domain['domains']) {
+                        var domain = result_domain['domains'][d];
+                        if (domain.endsWith(':ro') === false) {
+                            domains_list.push({ id: domain, text: domain })
                         }
-                    }
 
-                    return {
-                        results: domains_list
-                    };
+                    }
                 }
+                if (domains_list.length == 0) {
+                    $('#domainNameGroupDiv').remove();
+                }
+                dialog.modal('hide');
+               
+                select2_groups = $('#domain_name').select2({
+                    placeholder: 'Select Domain',
+                    width: '100%',
+                    "language": {
+                        "noResults": function () {
+                            return "No domains in the platform";
+                        }
+                    },
+                    data: domains_list
+                });
+
+                $('#modal_new_project').modal('show');
+
+            },
+            error: function (result) {
+                dialog.modal('hide');
+                bootbox.alert("An error occurred.");
             }
         });
-        $('#modal_new_project').modal('show');
     }
 
     function editProject(project_id){
