diff --git a/src/xmlpatterns/data/qatomiccomparators.cpp b/src/xmlpatterns/data/qatomiccomparators.cpp
index f0ad8f75bbbd83ba55e054b797a521943297f659..e889aafc75ef92c85fd8f3176b0dd7d4f87166fe 100644
--- a/src/xmlpatterns/data/qatomiccomparators.cpp
+++ b/src/xmlpatterns/data/qatomiccomparators.cpp
@@ -218,7 +218,7 @@ IntegerComparator::compare(const Item &o1,
                            const Item &o2) const
 {
     const Numeric *const num1 = o1.as<Numeric>();
-    const Numeric *const num2 = o1.as<Numeric>();
+    const Numeric *const num2 = o2.as<Numeric>();
 
     /**
      * Consider:
diff --git a/src/xmlpatterns/data/qduration.cpp b/src/xmlpatterns/data/qduration.cpp
index f4dc4c21211a0c4a5786da9e3f6ab7c010621b3e..d6a3537ada78f21d50860eebc92e83556a410ead 100644
--- a/src/xmlpatterns/data/qduration.cpp
+++ b/src/xmlpatterns/data/qduration.cpp
@@ -164,7 +164,7 @@ QString Duration::stringValue() const
         retval.append(QLatin1Char('D'));
     }
 
-    if(!m_hours && !m_minutes && !m_seconds && !m_seconds)
+    if(!m_hours && !m_minutes && !m_seconds && !m_mseconds)
     {
         if(!m_years && !m_months && !m_days)
             return QLatin1String("PT0S");
@@ -186,7 +186,7 @@ QString Duration::stringValue() const
         retval.append(QLatin1Char('M'));
     }
 
-    if(m_seconds || m_seconds)
+    if(m_seconds || m_mseconds)
     {
         retval.append(QString::number(m_seconds));