diff --git a/inc/parserutils.php b/inc/parserutils.php
index 45e6fd5aacf18dc48112f9191d3ac90506388fae..2c38e88a073ae5a5c7b0b28ba9efa2f6d16b59f1 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -229,9 +229,10 @@ function p_get_metadata($id, $key=false, $render=false){
   // accessed several times. This may catch a few other pages, but that shouldn't be an issue.
   $cache = ($ID == $id);
   $meta = p_read_metadata($id, $cache);
+  $file = metaFN($id, '.meta');
 
   // metadata has never been rendered before - do it!
-  if ($render && !$meta['description']['abstract']){
+  if ((!file_exists($file) && file_exists(wikiFN($id))) || ($render && !$meta['description']['abstract'])){
     $meta = p_render_metadata($id, $meta);
     io_saveFile($file, serialize($meta));