diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 714d55323d4302fbdcafaa17927e9ad0a15b1b31..de6189b2dc8e8c96b743e1dd94d901c07faa7919 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -125,7 +125,7 @@ class MergeRequest < ActiveRecord::Base
     end
   end
 
-  validates :source_project, presence: true, unless: :allow_broken
+  validates :source_project, presence: true, unless: [:allow_broken, :importing]
   validates :source_branch, presence: true
   validates :target_project, presence: true
   validates :target_branch, presence: true
diff --git a/app/services/projects/import_export/members_mapper.rb b/app/services/projects/import_export/members_mapper.rb
index 8d47422b10c5305458fd197bd41f0786dcff5a9d..6d49d901bf3fca6fc7f78b802bcd5f029405cca6 100644
--- a/app/services/projects/import_export/members_mapper.rb
+++ b/app/services/projects/import_export/members_mapper.rb
@@ -13,12 +13,6 @@ module Projects
       end
 
       def map
-        @project_member_map ||= project_member_map
-      end
-
-      private
-
-      def project_member_map
         @project_member_map = Hash.new(default_project_member)
         @exported_members.each do |member|
           existing_user = User.where(find_project_user_query(member)).first
@@ -27,6 +21,8 @@ module Projects
         @project_member_map
       end
 
+      private
+
       def assign_member(existing_user, member)
         old_user_id = member['user']['id']
         member['user'] = existing_user
diff --git a/app/services/projects/import_export/relation_factory.rb b/app/services/projects/import_export/relation_factory.rb
index 1b9bd234a4316bb0b6f6c2522bc1a2ce3bc03b1c..6ccaa409ce97928e1f929c83383329722baf0931 100644
--- a/app/services/projects/import_export/relation_factory.rb
+++ b/app/services/projects/import_export/relation_factory.rb
@@ -10,18 +10,19 @@ module Projects
         relation_sym = parse_relation_sym(relation_sym)
         klass = relation_class(relation_sym)
         relation_hash.delete('id') #screw IDs for now
-        #TODO refactor this...
-        if relation_sym == :merge_requests
-          relation_hash['target_project_id'] = relation_hash.delete('project_id')
-          relation_hash['source_project_id'] = -1
-          relation_hash['importing'] = true
-        end
+        handle_merge_requests(relation_hash) if relation_sym == :merge_requests
         update_user_references(relation_hash, members_map)
         klass.new(relation_hash)
       end
 
       private
 
+      def handle_merge_requests(relation_hash)
+        relation_hash['target_project_id'] = relation_hash.delete('project_id')
+        relation_hash['source_project_id'] = -1
+        relation_hash['importing'] = true
+      end
+
       #TODO nice to have, optimize this to only get called for specific models
       def update_user_references(relation_hash, members_map)
         USER_REFERENCES.each do |reference|