--- /data4/sles/ooo-build-SVN-Latest/ooo-build/build/OOE680_m6/basic/source/runtime/step0.cxx	2007-02-07 09:26:18.000000000 +0000
+++ basic/source/runtime/step0.cxx	2007-02-07 10:59:35.000000000 +0000
@@ -114,6 +114,40 @@ void SbiRuntime::StepCompare( SbxOperato
 {
 	SbxVariableRef p1 = PopVar();
 	SbxVariableRef p2 = PopVar();
+
+	// Make sure objects with default params have 
+	// values ( and type ) set as appropriate
+	SbxDataType p1Type = p1->GetType(); 
+	SbxDataType p2Type = p2->GetType(); 
+	if ( p1Type == p2Type )
+	{
+		if ( p1Type == SbxEMPTY )
+		{
+			p1->Broadcast( SBX_HINT_DATAWANTED );
+			p2->Broadcast( SBX_HINT_DATAWANTED );
+		}
+		// if both sides are an object and have default props
+		// then we need to use the default props
+		// we don't need to worry if only one side ( lhs, rhs ) is an 
+		// object ( object side will get coerced to correct type in 
+		// Compare )
+		else if ( p1Type ==  SbxOBJECT )
+		{
+			SbxVariable* pDflt = getDefaultProp( p1 );
+			if ( pDflt )
+			{
+				p1 = pDflt;
+				p1->Broadcast( SBX_HINT_DATAWANTED );
+			}
+			pDflt = getDefaultProp( p2 );
+			if ( pDflt )
+			{
+				p2 = pDflt;
+				p2->Broadcast( SBX_HINT_DATAWANTED );
+			}
+		}
+
+	}
 #ifndef WIN
 	static SbxVariable* pTRUE = NULL;
 	static SbxVariable* pFALSE = NULL;
