diff --git a/morji.scm b/morji.scm
index a8e10d4..7a0268e 100644
--- a/morji.scm
+++ b/morji.scm
@@ -43,12 +43,10 @@
       (lambda (nunjavni)
         (let ((morji (make-hash-table equal?)))
           (define (morji-nunjavni . sumti)
-            (hash-table-ref morji
-                            sumti
-                            (lambda ()
-                              (let ((javni (apply nunjavni sumti)))
-                                (hash-table-set! morji sumti javni)
-                                javni))))
+            (let ((javni (apply nunjavni sumti)))
+              (if (not (hash-table-exists? morji sumti))
+                  (hash-table-set! morji sumti javni))
+              javni))
 
           ;; register our cache with the global cache so
           ;; we can delete our memoization rules when we
