diff --git a/obj/Ref.h b/obj/Ref.h
index 1a2db48973ac3fc4e8c6704a45d526d2a3922191..35e16fad772ed3a18229bef9daf53fc6ef7c175a 100644
--- a/obj/Ref.h
+++ b/obj/Ref.h
@@ -9,8 +9,10 @@ All rights reserved.  Please see niflib.h for licence. */
  */
 template <class T> class Ref {
 public:
+	Ref();
 	Ref( T * object = NULL );
 	Ref(const Ref & ref_to_copy );
+	~Ref();
 
 	operator T*() const;
 	T& operator*() const;
@@ -31,6 +33,9 @@ protected:
 	T* _object;
 };
 
+template <class T>
+Ref<T>::Ref() : _object(NULL) {}
+
 template <class T>
 Ref<T>::Ref( T * object ) : _object(object) {}
 
@@ -43,6 +48,14 @@ Ref<T>::Ref(const Ref & ref_to_copy ) {
 	}
 }
 
+template <class T>
+Ref<T>::~Ref() {
+	//if object insn't null, decrement reference count
+	if ( _object != NULL ) {
+		_object->SubtractRef();
+	}
+}
+
 template <class T>
 Ref<T>::operator T*() const {
 	return _object;