diff -ru kino-1.2.0.orig/src/page_capture.cc kino-1.2.0/src/page_capture.cc --- kino-1.2.0.orig/src/page_capture.cc 2007-11-21 20:04:42.000000000 -0800 +++ kino-1.2.0/src/page_capture.cc 2008-06-13 13:01:43.000000000 -0700 @@ -827,7 +827,8 @@ int count = 1; char real[ 256 ] = ""; - strcpy( cmd, command ); + if (cmd != command) + strcpy( cmd, command ); switch ( sscanf( cmd, "%d%s", &count, real ) ) { diff -ru kino-1.2.0.orig/src/page_editor.cc kino-1.2.0/src/page_editor.cc --- kino-1.2.0.orig/src/page_editor.cc 2007-11-21 20:04:42.000000000 -0800 +++ kino-1.2.0/src/page_editor.cc 2008-06-13 12:50:54.000000000 -0700 @@ -711,7 +711,11 @@ int count = 1; char real[ 256 ] = ""; - strcpy( cmd, command ); + if (cmd != command) + { + strncpy( cmd, command, sizeof(cmd) ); + cmd[sizeof(cmd)-1] = '\0'; + } switch ( sscanf( cmd, "%d%s", &count, real ) ) { @@ -1201,9 +1205,10 @@ else { // Check for invalid commands - if ( strlen( real ) > 5 ) + size_t real_len = strlen(real); + if ( real_len > 5 ) cmd[ 0 ] = 0; - else if ( strchr( "dgy ", real[ strlen( real ) - 1 ] ) == NULL ) + else if ( real_len >= 1 && strchr( "dgy ", real[ strlen( real ) - 1 ] ) == NULL ) cmd[ 0 ] = 0; common->keyboardFeedback( cmd, "" ); diff -ru kino-1.2.0.orig/src/page_magick.cc kino-1.2.0/src/page_magick.cc --- kino-1.2.0.orig/src/page_magick.cc 2007-11-21 20:04:42.000000000 -0800 +++ kino-1.2.0/src/page_magick.cc 2008-06-13 13:00:20.000000000 -0700 @@ -1483,6 +1483,7 @@ last_page( 0 ), rendering( false ), previewing( false ), + repainting( false ), previewPosition( 0 ), keyFrameControllerClient( 0 ), isGuiLocked( false ), diff -ru kino-1.2.0.orig/src/kino_common.cc kino-1.2.0/src/kino_common.cc --- kino-1.2.0.orig/src/kino_common.cc 2007-12-08 17:03:55.000000000 -0800 +++ kino-1.2.0/src/kino_common.cc 2008-06-16 13:02:55.000000000 -0700 @@ -127,6 +127,7 @@ this->hasListChanged = TRUE; this->currentScene = -1; this->currentPage = -1; + this->showMoreInfo = false; this->component_state = VIDEO_STOP; this->is_component_state_changing = false;