diff --git a/CMakeLists.txt b/CMakeLists.txt
index a4098ea..c4c59f5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -376,21 +376,10 @@ if (NOT DEFAULT_SIGNATURE_BACKEND)
   set(DEFAULT_SIGNATURE_BACKEND "None")
 endif()
 
-# Recent versions of poppler-data install a .pc file.
-# Use it to determine the encoding data path, if available.
-# Default to the same prefix otherwise.
-pkg_check_modules(POPPLER_DATA poppler-data)
-if(POPPLER_DATA_FOUND)
-  execute_process(COMMAND "${PKG_CONFIG_EXECUTABLE}" --variable=poppler_datadir poppler-data
-                  RESULT_VARIABLE _result_var
-                  OUTPUT_VARIABLE _output_var OUTPUT_STRIP_TRAILING_WHITESPACE)
-  if(_result_var STREQUAL "0" AND NOT _output_var STREQUAL "")
-    set(POPPLER_DATADIR "${_output_var}")
-  endif()
-endif()
-if(NOT DEFINED POPPLER_DATADIR)
-  set(POPPLER_DATADIR "${CMAKE_INSTALL_PREFIX}/share/poppler")
-endif()
+# poppler-data is a noarch package that installs in %PREFIX%
+# rather than %LIBRARY_PREFIX% so won't be found. Hardcode
+# location for now
+set(POPPLER_DATADIR "$ENV{PREFIX}/share/poppler")
 
 if(EXTRA_WARN)
   set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
diff --git a/poppler/GlobalParams.cc b/poppler/GlobalParams.cc
index b3045fe..4d6dc6e 100644
--- a/poppler/GlobalParams.cc
+++ b/poppler/GlobalParams.cc
@@ -143,6 +143,13 @@ static std::string get_poppler_localdir(const std::string &suffix)
             retval.erase(p - binSuffix.size());
         }
     }
+
+    // conda-forge: conda's package layout requires a custom tweak:
+    const std::string::size_type p2 = retval.rfind('\\');
+    if (p2 != std::string::npos) {
+        retval.erase(p2);
+    }
+
     retval += suffix;
     retval.shrink_to_fit();
     return retval;
