Index: base/applications/games/solitaire/solgame.cpp =================================================================== --- base/applications/games/solitaire/solgame.cpp (revision 70453) +++ base/applications/games/solitaire/solgame.cpp (working copy) @@ -12,6 +12,7 @@ CardStack activepile; int LastId; bool fGameStarted = false; +bool bAutoroute = false; void NewGame(void) { @@ -233,7 +234,7 @@ SetPlayTimer(); //only drop 1 card at a time - if(dragcards.NumCards() != 1) + if(!bAutoroute && dragcards.NumCards() != 1) { TRACE("EXIT SuitStackDropProc()\n"); return false; @@ -415,7 +416,9 @@ //stackobj.MoveCards(pDest, 1, true); //use the SimulateDrag funcion, because we get the //AddProc callbacks called for us on the destination stacks... + bAutoroute = true; stackobj.SimulateDrag(pDest, 1, true); + bAutoroute = false; } TRACE("EXIT RowStackDblClickProc()\n"); } Index: base/applications/games/solitaire/solitaire.cpp =================================================================== --- base/applications/games/solitaire/solitaire.cpp (revision 70453) +++ base/applications/games/solitaire/solitaire.cpp (working copy) @@ -244,6 +244,9 @@ hInst, // program instance handle NULL); // creation parameters + if (hwnd == NULL) + return 1; + hwndMain = hwnd; UpdateStatusBar();