diff -ur qtparted-0.4.5.orig/src/qp_libparted.cpp qtparted-0.4.5/src/qp_libparted.cpp --- qtparted-0.4.5.orig/src/qp_libparted.cpp 2010-10-27 09:49:23.512310852 -0500 +++ qtparted-0.4.5/src/qp_libparted.cpp 2010-10-27 10:10:36.989060856 -0500 @@ -547,15 +547,27 @@ int major, minor, micro; const char *version; - if (!(version = ped_get_version ()) || (sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3)) { - printf ("Cannot get parted version\n"); - QString label = QString(QObject::tr("Cannot get parted version.")); - QMessageBox::information(NULL, PROG_NAME, label); - showDebug("%s", "Cannot get parted version\n"); + if ( ! ( version = ped_get_version () ) ) //|| ( sscanf ( version, "%d.%d.%d", &major, &minor, µ ) != 3 ) ) + { + printf ( "Cannot get parted version\n" ); + QString label = QString ( QObject::tr ( "Cannot get parted version." ) ); + QMessageBox::information ( 0, PROG_NAME, label ); + showDebug ( "%s", "Cannot get parted version\n" ); return false; } + if(sscanf(version, "%d.%d.%d", &major, &minor, µ) != 3) { + micro = 0; + if(sscanf(version, "%d.%d", &major, &minor) != 2) { + minor = 0; + if(sscanf(version, "%d", &major) != 1) { + QMessageBox::information(0, PROG_NAME, tr("Can't identify parted version; claims to be %1").arg(version)); + return false; + } + } + } + if ((major > PARTED_REQUESTED_MAJOR) || ((major == PARTED_REQUESTED_MAJOR) && (minor > PARTED_REQUESTED_MINOR)) || ((major == PARTED_REQUESTED_MAJOR) && (minor == PARTED_REQUESTED_MINOR)