diff --git a/src/emitter.c b/src/emitter.c
index 511307b3c19dfbd6dcd908a1b0c8e00cc2434d7f_c3JjL2VtaXR0ZXIuYw==..7849a2943aa6c2fda652a33d0ae79a32b31d5918_c3JjL2VtaXR0ZXIuYw== 100644
--- a/src/emitter.c
+++ b/src/emitter.c
@@ -1421,7 +1421,11 @@
     }
 
     while (string.pointer != string.end) {
-        if (!IS_ALPHA(string)) {
+        if (
+            !IS_ALPHA(string)
+            && !CHECK(string, '.')
+            && !CHECK(string, '/')
+        ) {
             return yaml_emitter_set_emitter_error(emitter, alias ?
                     "alias value must contain alphanumerical characters only" :
                     "anchor value must contain alphanumerical characters only");
diff --git a/src/scanner.c b/src/scanner.c
index 511307b3c19dfbd6dcd908a1b0c8e00cc2434d7f_c3JjL3NjYW5uZXIuYw==..7849a2943aa6c2fda652a33d0ae79a32b31d5918_c3JjL3NjYW5uZXIuYw== 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -2336,7 +2336,11 @@
 
     if (!CACHE(parser, 1)) goto error;
 
-    while (IS_ALPHA(parser->buffer)) {
+    while (
+        IS_ALPHA(parser->buffer)
+        || CHECK(parser->buffer, '.')
+        || CHECK(parser->buffer, '/')
+    ) {
         if (!READ(parser, string)) goto error;
         if (!CACHE(parser, 1)) goto error;
         length ++;