diff --git a/test/test_main.py b/test/test_main.py
index dd5ccf00eb0219cca4323fd6509f77784c80b970..4f70f155c05aa9d0baf3e7f0143110aa4e3e7981 100644
--- a/test/test_main.py
+++ b/test/test_main.py
@@ -59,17 +59,19 @@ class TestMain(unittest.TestCase):
         """Test at endring av tekst funker."""
 
         def change_text_and_ok():
-            while self.widget.dlg_input is None:
-                app.processEvents()
+            # in PySide2 we need to store a reference to this. If we don't the
+            # widget is garbage collected somehow before we get to use
+            # child_line_edit (a child of the active widget)
+            active_widget = app.activeModalWidget()
 
-            child_line_edit = self.widget.dlg_input.findChild(
+            child_line_edit = active_widget.findChild(
                 QtWidgets.QLineEdit
             )
 
             QtTest.QTest.keyClicks(child_line_edit, self.test_text2)
             QtTest.QTest.keyClick(child_line_edit, QtCore.Qt.Key_Enter)
 
-        QtCore.QTimer.singleShot(100, change_text_and_ok)
+        QtCore.QTimer.singleShot(0, change_text_and_ok)
         QtTest.QTest.mouseClick(self.widget.button, QtCore.Qt.LeftButton)
 
         self.assertEqual(