diff -up pegasus/src/Pegasus/ProviderManager2/CMPI/CMPISCMOUtilities.cpp.test pegasus/src/Pegasus/ProviderManager2/CMPI/CMPISCMOUtilities.cpp --- pegasus/src/Pegasus/ProviderManager2/CMPI/CMPISCMOUtilities.cpp.test 2012-12-03 16:48:34.469370334 +0100 +++ pegasus/src/Pegasus/ProviderManager2/CMPI/CMPISCMOUtilities.cpp 2012-12-03 16:47:41.000000000 +0100 @@ -358,12 +358,6 @@ CMPIrc CMPISCMOUtilities::scmoValue2CMPI data->value.uint64 = 0; data->state = CMPI_goodValue; - //Check for NULL CIMValue - if( scmoValue == 0 ) - { - data->state = CMPI_nullValue; - return CMPI_RC_OK; - } if (type & CMPI_ARRAY) { @@ -398,6 +392,12 @@ CMPIrc CMPISCMOUtilities::scmoValue2CMPI } else { + //Check for NULL CIMValue + if( scmoValue == 0 ) + { + data->state = CMPI_nullValue; + return CMPI_RC_OK; + } // Check for encpsulated type, which need special handling if (type&CMPI_ENC) {