diff --git a/src/crypt.c b/src/crypt.c
index b2b50d4..a2740c9 100644
--- a/src/crypt.c
+++ b/src/crypt.c
@@ -73,7 +73,7 @@
 							char_u *p2, int last);
 } cryptmethod_T;
 
-static int crypt_sodium_init(cryptstate_T *state, char_u *key, char_u *salt, int salt_len, char_u *seed, int seed_len);
+static int crypt_sodium_init_(cryptstate_T *state, char_u *key, char_u *salt, int salt_len, char_u *seed, int seed_len);
 static long crypt_sodium_buffer_decode(cryptstate_T *state, char_u *from, size_t len, char_u **buf_out, int last);
 static long crypt_sodium_buffer_encode(cryptstate_T *state, char_u *from, size_t len, char_u **buf_out, int last);
 
@@ -145,7 +145,7 @@
 #endif
 	FALSE,
 	NULL,
-	crypt_sodium_init,
+	crypt_sodium_init_,
 	NULL, NULL,
 	crypt_sodium_buffer_encode, crypt_sodium_buffer_decode,
 	NULL, NULL,
@@ -198,6 +198,7 @@
     dll_crypto_secretstream_xchacha20poly1305_pull
 #  define crypto_pwhash	    dll_crypto_pwhash
 #  define randombytes_buf   dll_randombytes_buf
+#  define randombytes_random dll_randombytes_random
 
 static int (*dll_sodium_init)(void) = NULL;
 static void (*dll_sodium_free)(void *) = NULL;
@@ -231,6 +232,7 @@
     unsigned long long opslimit, size_t memlimit, int alg)
     = NULL;
 static void (*dll_randombytes_buf)(void * const buf, const size_t size);
+static uint32_t (*dll_randombytes_random)(void);
 
 static struct {
     const char *name;
@@ -248,6 +250,7 @@
     {"crypto_secretstream_xchacha20poly1305_pull", (SODIUM_PROC*)&dll_crypto_secretstream_xchacha20poly1305_pull},
     {"crypto_pwhash", (SODIUM_PROC*)&dll_crypto_pwhash},
     {"randombytes_buf", (SODIUM_PROC*)&dll_randombytes_buf},
+    {"randombytes_random", (SODIUM_PROC*)&dll_randombytes_random},
     {NULL, NULL}
 };
 
@@ -855,7 +858,7 @@
 }
 
     static int
-crypt_sodium_init(
+crypt_sodium_init_(
     cryptstate_T	*state UNUSED,
     char_u		*key UNUSED,
     char_u		*salt UNUSED,
@@ -1143,6 +1146,18 @@
 {
     randombytes_buf(buf, size);
 }
+
+    int
+crypt_sodium_init(void)
+{
+    return sodium_init();
+}
+
+    uint32_t
+crypt_sodium_randombytes_random(void)
+{
+    return randombytes_random();
+}
 # endif
 
 #endif // FEAT_CRYPT
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 428c4cb..84df6a6 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -8166,8 +8166,8 @@
 	// - reltime() or time()
 	// - XOR with process ID
 #if defined(FEAT_SODIUM)
-	if (sodium_init() >= 0)
-	    *x = randombytes_random();
+	if (crypt_sodium_init() >= 0)
+	    *x = crypt_sodium_randombytes_random();
 	else
 #endif
 	{
diff --git a/src/proto/crypt.pro b/src/proto/crypt.pro
index 7913694..560e30b 100644
--- a/src/proto/crypt.pro
+++ b/src/proto/crypt.pro
@@ -26,4 +26,6 @@
 void crypt_append_msg(buf_T *buf);
 int crypt_sodium_munlock(void *const addr, const size_t len);
 void crypt_sodium_randombytes_buf(void *const buf, const size_t size);
+int crypt_sodium_init(void);
+uint32_t crypt_sodium_randombytes_random(void);
 /* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index d4a3b1b..5db72d2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1023,
+/**/
     1022,
 /**/
     1021,
