I got a crash report from a tester that points to a null reference error in UIDrawCall.ClearAll(). Maybe you could put a if dc!=null or dc.gameobject!=null statement there?
02-14 13:56:36.859: I/Unity(8856): NullReferenceException
02-14 13:56:36.859: I/Unity(8856): at UnityEngine.Component.get_gameObject () [0x00000] in <filename unknown>:0
02-14 13:56:36.859: I/Unity(8856): at UIDrawCall.ClearAll () [0x0002c] in C:\Users\Public\Documents\Unity Projects\WordMonsters\Assets\NGUI\Scripts\Internal\UIDrawCall.cs:664
02-14 13:56:36.859: I/Unity(8856): at UIDrawCall.ReleaseAll () [0x00000] in C:\Users\Public\Documents\Unity Projects\WordMonsters\Assets\NGUI\Scripts\Internal\UIDrawCall.cs:676
02-14 13:56:36.859: I/Unity(8856): at UIPanel.OnDisable () [0x00062] in C:\Users\Public\Documents\Unity Projects\WordMonsters\Assets\NGUI\Scripts\UI\UIPanel.cs:728