--- ../ezpublish-3.9.1/kernel/classes/ezcontentobjectversion.php        2007-03-14 16:37:59.000000000 +0100
+++ ./kernel/classes/ezcontentobjectversion.php 2007-03-19 10:41:37.000000000 +0100
@@ -1000,12 +1000,16 @@
     {   
         $statuses = array( EZ_VERSION_STATUS_DRAFT,
                            EZ_VERSION_STATUS_PENDING,
-                           // EZ_VERSION_STATUS_ARCHIVED
+                           EZ_VERSION_STATUS_ARCHIVED,
                            EZ_VERSION_STATUS_REJECTED,
                            EZ_VERSION_STATUS_INTERNAL_DRAFT );
+        
         if ( $versionStatus === false )
         {
-            $versionStatus = $statuses;
+            $versionStatus = array( EZ_VERSION_STATUS_DRAFT,
+                                    EZ_VERSION_STATUS_PENDING,
+                                    EZ_VERSION_STATUS_REJECTED,
+                                    EZ_VERSION_STATUS_INTERNAL_DRAFT );
         }
         else if ( !is_array( $versionStatus ) )
         {
@@ -1013,14 +1017,14 @@
         }
         
         $versionStatus = array_unique( $versionStatus );
-        $checkIntersect = array_intersect( $versionStatus, $statuses );
-        if ( count( $checkIntersect ) != count( $versionStatus ) )
+        $extraStatus = array_diff( $versionStatus, $statuses );
+        if ( !empty( $extraStatus ) )
         {   
             eZDebug::writeError( 'Invalid version status was passed in.', 'eZContentObjectVersion::removeVersions()' );
             return false;
         }

-        if ( !is_numeric( $limit ) or $limit < 0 )
+        if ( $limit !== false && ( !is_numeric( $limit ) or $limit < 0 ) )
         {   
             eZDebug::writeError( '$limit must be either false or positive numeric value.', 'eZContentObjectVersion::removeVersions()' );   
             return false;
