Index: Dev/trunk/src/client/qed-client/model/widgets/TabbedQuestionBrowser.js
===================================================================
--- Dev/trunk/src/client/qed-client/model/widgets/TabbedQuestionBrowser.js	(revision 500)
+++ Dev/trunk/src/client/qed-client/model/widgets/TabbedQuestionBrowser.js	(revision 501)
@@ -13,22 +13,21 @@
         dndType: "question",
         getCategories: function(){
-            return categories.query();
+            var opts = {};
+            if ( this.include ) { opts[this.include] = true; }
+            return categories.query(opts);
         },
         getCategoryName: function(category){ return category.name; },
         getCategoryCount: function(category){ return category.count; },
         getTopics: function(category) {
-            return topics.query({category:category.name});
+            var opts = {category:category.name};
+            if ( this.include ) { opts[this.include] = true; }
+            return topics.query(opts);
         },
         getTopicName: function(topic){ return topic.name; },
         getTopicCount: function(topic){ return topic.count; },
         getItems: function(category,topic) {
-            return questions.query({category:category.name,topic:topic.name})
-            .then(lang.hitch(this,function(items){
-                return array.filter(items, function(item){
-                    return (this.include === 'published' && item.publicationDate) ||
-                           (this.include === 'drafts' && !item.publicationDate) ||
-                           true;
-                }, this);
-            }));
+            var opts = {category:category.name,topic:topic.name};
+            if ( this.include ) { opts[this.include] = true; }
+            return questions.query(opts);
         },
         getItemName: function(item) {
Index: Dev/trunk/src/client/qed-client/widgets/ListWidget.js
===================================================================
--- Dev/trunk/src/client/qed-client/widgets/ListWidget.js	(revision 500)
+++ Dev/trunk/src/client/qed-client/widgets/ListWidget.js	(revision 501)
@@ -9,6 +9,7 @@
     "dojo/dnd/common",
     "dojo/dom-construct",
+    "dojo/_base/event",
     "dojo/on"
-], function(_Container, _WidgetBase, registry, array, declare, lang, Source, dnd, domConstruct, on) {
+], function(_Container, _WidgetBase, registry, array, declare, lang, Source, dnd, domConstruct, event, on) {
     return declare([_WidgetBase,_Container],{
         name: "",
@@ -58,4 +59,8 @@
                         lang.hitch(this,'_handleChange')));
         },
+        create: function() {
+            this.inherited(arguments);
+            this._onChangeActive = true;
+        },
         creator: function(item, hint) {
             var id = dnd.getUniqueId();
@@ -74,5 +79,5 @@
                 }
             }
-            this.own(on(nodeOrWidget,'change',lang.hitch(this,'_handleChange')));
+            //this.own(on(nodeOrWidget,'change',lang.hitch(this,'_handleChange')));
             var node = nodeOrWidget.domNode ? nodeOrWidget.domNode : nodeOrWidget;
             if ( hint !== "avatar" && node.id !== id ) {
@@ -122,9 +127,9 @@
         appendItems: function(items,forceEvent) {
             this.source.insertNodes(false,items);
-            if ( forceEvent ) { this._handleChange(); }
+            if ( forceEvent ) { this._handleDrop(); }
         },
         appendItem: function(item,forceEvent) {
             this.source.insertNodes(false,[item]);
-            if ( forceEvent ) { this._handleChange(); }
+            if ( forceEvent ) { this._handleDrop(); }
         },
         removeItem: function(key,forceEvent) {
@@ -133,5 +138,5 @@
             }), lang.hitch(this, "_destroyNodeOrWidget"));
             this.source.delItem(key);
-            if ( forceEvent ) { this._handleChange(); }
+            if ( forceEvent ) { this._handleDrop(); }
         },
         getChildren: function() {
@@ -144,5 +149,5 @@
                           lang.hitch(this, "_destroyNodeOrWidget"));
             this.source.clearItems();
-            if ( forceEvent ) { this._handleChange(); }
+            if ( forceEvent ) { this._handleDrop(); }
         },
         _destroyNodeOrWidget: function(node) {
