diff --git a/src/rinterface_extra.c b/src/rinterface_extra.c
index bed4b7877cf..04137a7d04d 100644
--- a/src/rinterface_extra.c
+++ b/src/rinterface_extra.c
@@ -2900,8 +2900,8 @@ void R_igraph_restore_pointer(SEXP graph) {
for (i = 0; i < s; ++i)
{
- igraph_vector_set(&v, i*2, VECTOR(to)[i]);
- igraph_vector_set(&v, i*2+1, VECTOR(from)[i]);
+ igraph_vector_set(&v, i*2, VECTOR(from)[i]);
+ igraph_vector_set(&v, i*2+1, VECTOR(to)[i]);
}
igraph_empty(&g, n, directed);
diff --git a/tests/testthat/_snaps/plot/basic-graph-r-4-2.svg b/tests/testthat/_snaps/plot/basic-graph-r-4-2.svg
index 88eb7423399..fddeb30284f 100644
--- a/tests/testthat/_snaps/plot/basic-graph-r-4-2.svg
+++ b/tests/testthat/_snaps/plot/basic-graph-r-4-2.svg
@@ -25,16 +25,16 @@
-
-
-
-
-
+
+
+
+
+
-1
-2
-3
+1
+2
+3
diff --git a/tests/testthat/test-serialize.R b/tests/testthat/test-serialize.R
new file mode 100644
index 00000000000..d2009965f70
--- /dev/null
+++ b/tests/testthat/test-serialize.R
@@ -0,0 +1,8 @@
+test_that("serialization works", {
+ local_igraph_options(print.id = FALSE)
+
+ g <- make_ring(3, directed = TRUE)
+ gs <- unserialize(serialize(g, NULL))
+
+ expect_identical(unclass(g)[-igraph_t_idx_env], unclass(gs)[-igraph_t_idx_env])
+})