This is the second dialog var viewMessage = function(){ var dialog, showBtn; return { init : function(){ }, showDialog : function(){ if(!dialog){ // lazy initialize the dialog and only create it once dialog = new Ext.BasicDialog("msg-dlg", { width:500, height:350, shadow:true, minWidth:300, minHeight:250, proxyDrag: true }); dialog.addKeyListener(27, dialog.hide, dialog); dialog.addButton('Close', dialog.hide, dialog); } // dialog.show(showBtn.dom); } }; }(); Ext.onReady(viewMessage.init, viewMessage, true); IM calling it with this from a rowClick function from a grid in my origonal dialog: viewMessage.showDialog()