diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c
index 83b50bb..79168b6 100644
--- a/contrib/pgstattuple/pgstatindex.c
+++ b/contrib/pgstattuple/pgstatindex.c
@@ -234,9 +234,11 @@ pgstatindex(PG_FUNCTION_ARGS)
 		values[j] = palloc(32);
 		snprintf(values[j++], 32, INT64_FORMAT, indexStat.deleted_pages);
 		values[j] = palloc(32);
-		snprintf(values[j++], 32, "%.2f", 100.0 - (double) indexStat.free_space / (double) indexStat.max_avail * 100.0);
+		snprintf(values[j++], 32, "%.2f", 100.0 - indexStat.max_avail == 0 ?
+				 (double)0.0 : ((double) indexStat.free_space / (double) indexStat.max_avail * 100.0));
 		values[j] = palloc(32);
-		snprintf(values[j++], 32, "%.2f", (double) indexStat.fragments / (double) indexStat.leaf_pages * 100.0);
+		snprintf(values[j++], 32, "%.2f", indexStat.leaf_pages == 0 ?
+				 (double) 0.0 : ((double) indexStat.fragments / (double) indexStat.leaf_pages * 100.0));
 
 		tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
 									   values);
