Index: ui/transformations_ui.dragndrop.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/transformations/ui/transformations_ui.dragndrop.js,v
retrieving revision 1.3
diff -u -r1.3 transformations_ui.dragndrop.js
--- ui/transformations_ui.dragndrop.js	23 Jun 2009 20:07:28 -0000	1.3
+++ ui/transformations_ui.dragndrop.js	26 Jun 2009 10:25:58 -0000
@@ -87,6 +87,7 @@
     accept: '.transformations-operation-input',
     hoverClass: 'transformations-operation-slot-hover',
     tolerance: 'pointer',
+    accept: Drupal.transformationsUiIsDroppable,
     drop: function(event, ui) {
       Drupal.transformationsUiConnectSlots(
         $(this).parent().attr('id'), $(ui.draggable).attr('id')
@@ -97,6 +98,7 @@
     accept: '.transformations-operation-output',
     hoverClass: 'transformations-operation-slot-hover',
     tolerance: 'pointer',
+    accept: Drupal.transformationsUiIsDroppable,
     drop: function(event, ui) {
       Drupal.transformationsUiConnectSlots(
         $(ui.draggable).attr('id'), $(this).parent().attr('id')
@@ -127,6 +129,26 @@
 }
 
 /**
+ * Checks an given parameters are from the same Operation or
+ * the one is from pipe parameters and the other from the pipe output
+ */
+Drupal.transformationsUiIsDroppable = function(draggable){
+  if(draggable != null){
+    var source = Drupal.settings.transformationsUiSlots[draggable.attr('id')];
+    var target = Drupal.settings.transformationsUiSlots[$(this).parent().attr('id')];
+    if(source != null && target != null){
+      if((source.entity == target.entity) || (source.entity == '4' && target.entity=='2') 
+          || (source.entity == '2' && target.entity=='4')){
+        return false;
+      }else{
+        return true;
+      }
+    }
+  }
+}
+
+
+/**
  * Look for the bottom-most operation block and set the canvas's
  * minimum height appropriately.
  */
