diff --git a/components/nif/record_ptr.hpp b/components/nif/record_ptr.hpp
index 755094147..7e6a43f53 100644
--- a/components/nif/record_ptr.hpp
+++ b/components/nif/record_ptr.hpp
@@ -71,18 +71,21 @@ public:
     }
 
     /// Look up the actual object from the index
-    X* getPtr()
+    X* getPtr() const
     {
         assert(ptr != NULL);
         return ptr;
     }
-    X& get() { return *getPtr(); }
+    X& get() const
+    { return *getPtr(); }
 
     /// Syntactic sugar
-    X* operator->() { return getPtr(); }
+    X* operator->() const
+    { return getPtr(); }
 
     /// Pointers are allowed to be empty
-    bool empty() { return ptr == NULL; }
+    bool empty() const
+    { return ptr == NULL; }
 };
 
 /** A list of references to other records. These are read as a list,