diff --git a/dist/contactJS.js b/dist/contactJS.js
index f7ae694a0d61ae69d8dcfb52ac95a31bfa595fd8..99f43bf4e1628bd0294a0d11f6c01a953d146725 100644
--- a/dist/contactJS.js
+++ b/dist/contactJS.js
@@ -5423,13 +5423,19 @@ define('aggregator',['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandl
 		 * @public
 	   	 * @alias addWidgetSubscription
 		 * @memberof Aggregator#
-		 * @param {WidgetHandle} _widgetHandle Widget that should be subscribed.
-		 * @param {CallbackList} _callbacks required Callbacks
+		 * @param {WidgetHandle|Widget} _widgetHandleOrWidget Widget that should be subscribed.
+		 * @param {CallbackList} _callbackList required Callbacks
 	     */
-		'public addWidgetSubscription' : function(_widgetHandle, _callbackList){
-			if(Class.isA(WidgetHandle, _widgetHandle) && Class.isA(CallbackList, _callbackList)){
-				var widget = this.discoverer.getComponent(_widgetHandle.getId());
-				if(widget && widget.getName() === _widgetHandle.getName()){
+		'public addWidgetSubscription' : function(_widgetHandleOrWidget, _callbackList){
+            if (Class.isA(Widget, _widgetHandleOrWidget)) {
+                if (!_callbackList || !Class.isA(CallbackList, _callbackList)) {
+                    _callbackList = _widgetHandleOrWidget.getCallbackList();
+                }
+                _widgetHandleOrWidget = _widgetHandleOrWidget.getHandle();
+            }
+			if(Class.isA(WidgetHandle, _widgetHandleOrWidget) && Class.isA(CallbackList, _callbackList)){
+				var widget = this.discoverer.getComponent(_widgetHandleOrWidget.getId());
+				if(widget && widget.getName() === _widgetHandleOrWidget.getName()){
 					this.subscribeTo(widget, _callbackList);			
 					this.callbacks.putAll(_callbackList);			
 					var callsList = _callbackList.getItems();		
@@ -5441,7 +5447,7 @@ define('aggregator',['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandl
 							this.addAttributeType(singleType);
                         }
                     }
-                    this.addWidget(_widgetHandle);
+                    this.addWidget(_widgetHandleOrWidget);
                 }
             }
         },
diff --git a/js/modules/aggregator/aggregator.js b/js/modules/aggregator/aggregator.js
index 3e88cc2063ee781a32cc07f8cbfeced292d82b83..11fcce22a022216bae0c49106442b347f2453f6a 100644
--- a/js/modules/aggregator/aggregator.js
+++ b/js/modules/aggregator/aggregator.js
@@ -357,13 +357,19 @@ define(['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandleList',
 		 * @public
 	   	 * @alias addWidgetSubscription
 		 * @memberof Aggregator#
-		 * @param {WidgetHandle} _widgetHandle Widget that should be subscribed.
-		 * @param {CallbackList} _callbacks required Callbacks
+		 * @param {WidgetHandle|Widget} _widgetHandleOrWidget Widget that should be subscribed.
+		 * @param {CallbackList} _callbackList required Callbacks
 	     */
-		'public addWidgetSubscription' : function(_widgetHandle, _callbackList){
-			if(Class.isA(WidgetHandle, _widgetHandle) && Class.isA(CallbackList, _callbackList)){
-				var widget = this.discoverer.getComponent(_widgetHandle.getId());
-				if(widget && widget.getName() === _widgetHandle.getName()){
+		'public addWidgetSubscription' : function(_widgetHandleOrWidget, _callbackList){
+            if (Class.isA(Widget, _widgetHandleOrWidget)) {
+                if (!_callbackList || !Class.isA(CallbackList, _callbackList)) {
+                    _callbackList = _widgetHandleOrWidget.getCallbackList();
+                }
+                _widgetHandleOrWidget = _widgetHandleOrWidget.getHandle();
+            }
+			if(Class.isA(WidgetHandle, _widgetHandleOrWidget) && Class.isA(CallbackList, _callbackList)){
+				var widget = this.discoverer.getComponent(_widgetHandleOrWidget.getId());
+				if(widget && widget.getName() === _widgetHandleOrWidget.getName()){
 					this.subscribeTo(widget, _callbackList);			
 					this.callbacks.putAll(_callbackList);			
 					var callsList = _callbackList.getItems();		
@@ -375,7 +381,7 @@ define(['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandleList',
 							this.addAttributeType(singleType);
                         }
                     }
-                    this.addWidget(_widgetHandle);
+                    this.addWidget(_widgetHandleOrWidget);
                 }
             }
         },