diff --git a/app/controllers/v1/learning_objects_controller.rb b/app/controllers/v1/learning_objects_controller.rb
index 2815773e2accb1338ea36b1db9fea30d046677db..81da21258866d5d74d2f41b1ad6b89eed6b39bce 100644
--- a/app/controllers/v1/learning_objects_controller.rb
+++ b/app/controllers/v1/learning_objects_controller.rb
@@ -49,8 +49,11 @@ class V1::LearningObjectsController < ApplicationController
   # PATCH/PUT /learning_objects/1
   # PATCH/PUT /learning_objects/1.json
   def update
+     if !learning_object_params[:object_type_id].blank? && learning_object_params[:object_type_id] != @learning_object.object_type_id && learning_object_params[:link].blank?
+      change_object_type_id = true
+    end
     if @learning_object.update(learning_object_params)
-      learning_object_associations(@learning_object)
+      learning_object_associations(@learning_object, change_object_type_id)
       publisher = LearningObjectPublisher.new(DspaceService.create_client)
       publisher.update_dspace(@learning_object)
 
@@ -108,7 +111,7 @@ class V1::LearningObjectsController < ApplicationController
     params[:learning_object].permit(subjects: [], educational_stages: [], tags: [:name])
   end
 
-  def learning_object_associations(learning_object)
+  def learning_object_associations(learning_object, change_object_type_id)
     if extra_params[:tags] == []
       current_user.untag(learning_object, with: @learning_object.tags.map { |t| t['name'] })
     elsif !extra_params[:tags].nil?
@@ -116,6 +119,10 @@ class V1::LearningObjectsController < ApplicationController
     end
     learning_object.add_subjects(ids: extra_params[:subjects]) unless extra_params[:subjects].nil?
     learning_object.add_educational_stages(ids: extra_params[:educational_stages]) unless extra_params[:educational_stages].nil?
+
+    if change_object_type_id   
+      learning_object.link = nil
+    end
   end
 
   def authorize!