diff --git a/src/dom/DOM_Range.cpp b/src/dom/DOM_Range.cpp
index 0cde6eb389bc73c2cbd8ef887c190cfd0a0f6a2b..c1059d26d9dc7482d6e59ba1d423cd8118820a4c 100644
--- a/src/dom/DOM_Range.cpp
+++ b/src/dom/DOM_Range.cpp
@@ -77,6 +77,12 @@ DOM_Range::DOM_Range(RangeImpl* impl)
     RefCountedImpl::addRef(fImpl);
 }
 
+DOM_Range::DOM_Range(const DOM_Range& other)
+{
+    fImpl = other.fImpl;
+    RefCountedImpl::addRef(fImpl);
+}
+
 DOM_Range::~DOM_Range()
 {
     RefCountedImpl::removeRef (this->fImpl);
diff --git a/src/dom/DOM_Range.hpp b/src/dom/DOM_Range.hpp
index 94524d03b423a2c8176af0bba9b6286fd88f580e..3381ee420813268c45096ac234b8be4518fc400c 100644
--- a/src/dom/DOM_Range.hpp
+++ b/src/dom/DOM_Range.hpp
@@ -82,6 +82,7 @@ public:
 
     //c'tor & d'tor
     DOM_Range();
+    DOM_Range(const DOM_Range& other);
     ~DOM_Range();