diff --git a/R/magic_mirror.R b/R/magic_mirror.R
index dc54067..dafcc23 100644
--- a/R/magic_mirror.R
+++ b/R/magic_mirror.R
@@ -8,9 +8,6 @@
 #' @export
 
 magic_mirror <- function(kable_input){
-  if ("kable_meta" %in% names(attributes(kable_input))) {
-    return(attr(kable_input, "kable_meta"))
-  }
   kable_format <- attr(kable_input, "format")
   if (kable_format == "latex") {
     table_info <- magic_mirror_latex(kable_input)
@@ -18,6 +15,20 @@
   if (kable_format == "html") {
     table_info <- magic_mirror_html(kable_input)
   }
+  if ("kable_meta" %in% names(attributes(kable_input))) {
+    out <- attr(kable_input, "kable_meta")
+    # if we return `kable_meta` immediately, `kable_styling` will use the
+    # original `table_env` value. So if we call `kable_styling` twice on the
+    # same object, it will nest a table within a table. Make sure this does not
+    # happen.
+    if (kable_format == "latex") {
+      table_info <- magic_mirror_latex(kable_input)
+      if (table_info$table_env && !out$table_env) {
+        out$table_env <- table_info$table_env
+      }
+    }
+    return(out)
+  }
   return(table_info)
 }
 
@@ -98,7 +109,8 @@
   table_info$centering <- grepl("\\\\centering", kable_input)
 
   table_info$table_env <- (!is.na(table_info$caption) &
-                             table_info$tabular != "longtable")
+                           table_info$tabular != "longtable") ||
+                          grepl("\\\\begin\\{table\\}", kable_input)
 
   return(table_info)
 }
